是什么阻止了Ruby和Python获得Javascript V8那样的速度?

Posted 并发编程网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是什么阻止了Ruby和Python获得Javascript V8那样的速度?相关的知识,希望对你有一定的参考价值。

这是来自stackoverflow的一个提问,Ruby Python有什么特点阻止了像javascript V8引擎那样的优化设计?Python也有Google协同开发,他们不应该存在偏见,或者这是Google的资源限制?

What blocks Ruby, Python to get Javascript V8 speed?

挑选一个点赞最多的翻译一下:

没有什么能阻止,除了钱,V8拥有一支出色的,高度专业化,经验丰富的(因此高薪)工作的工程师,有几十年创建动态的面向对象语言的经验,包括在高性能的执行引擎。他们基本上就是创造了SUN HotSpot JVM的同一批人。

Lars Bak是开发人员的领头,已经在VM上工作了25年(所有这些导致了V8),这基本上包括了他的整个生活(专业)。而目前有些写Ruby VM的人甚至还不到25岁。

那么有任何的Ruby / Python的功能是阻止实施类似V8引擎的优化(例如内联缓存)?鉴于IronRuby,JRuby MagLev MacRuby和Rubinius等也有单态(IronRuby是单态)或多态内联缓存,答案显然是否定的。现代的Ruby实现已经做了大量的优化。例如,对于某些操作,Rubinius的哈希类比YARV的要快,这听起来不太刺激直到你意识到Rubinius的哈希类是100%纯Ruby来实现的,YARV的是100%手工优化的C编写实现的.

所以,至少在某些情况下,Rubinius可以产生比GCC更好的代码!

主要问题是资源限制,不只是Google,V8的源代码到现在已经25岁了。那些创造了它的人也创造了Self VM (这是最快的一个动态的面向对象语言执行引擎), Animorphic Smalltalk VM(这是最快的一个Smalltalk执行引擎),HotSpot JVM(所创造最快Java虚拟机,最快的虚拟机的时间)和OOVM(最高效的Smalltalk VM之一)。

================================================

感谢 CodingUPYUN 对本微信的支持。Coding.net 是一个面向开发者的云端开发平台,目前提供代码托管、运行空间、质量控制、项目管理等功能。

upyun.com是国内领先的云服务提供商,专注于提供静态文件的云存储、云处理和CDN加速服务。现在注册,即可免费体验!

以上是关于是什么阻止了Ruby和Python获得Javascript V8那样的速度?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby和python哪个更易懂、灵活?

被阻止的主机:rails 6.0.0 上的 localhost ruby

ruby 在Ruby on Rails中阻止别名

Ruby On Rails |被阻止的主机:本地主机

python 和 ruby​​ - 有啥用呢? [关闭]

为啥 -1 / 2 == -1 在 Ruby 和 Python 中? [复制]