是什么阻止了Ruby、Python获得Javascript V8速度?[闭门]

关闭。这个问题需要更加关注。它目前不接受答案。

六年前关闭的

已锁定。这个问题及其答案被锁定,因为这个问题离题,但具有历史意义。它目前不接受新的答案或互动。

是否有任何Ruby/Python特性阻碍了V8引擎的优化实现(例如内联缓存)

Python是由Google的家伙共同开发的,所以它不应该被软件专利所阻止

或者这是谷歌投入V8项目的资源问题

是什么阻止了Ruby、Python获得Javascript V8速度

没什么

好吧,钱。(还有时间、人员、资源,但如果你有钱,你可以买。)

V8拥有一支由才华横溢、高度专业化、经验丰富(因此薪水很高)的工程师组成的团队,他们在为动态OO语言创建高性能执行引擎方面拥有数十年的经验(我单独谈论,总体而言,这更像是几个世纪)。他们基本上都是创建Sun HotSpot JVM(以及其他许多JVM)的人

首席开发人员Lars Bak实际上已经在虚拟机上工作了25年(所有这些虚拟机都支持V8),这基本上是他的整个(职业)生活。一些编写Ruby虚拟机的人甚至还不到25岁

是否有任何Ruby/Python特性阻碍了V8引擎的优化实现(例如内联缓存)

考虑到至少IronRuby、JRuby、MagLev、MacRuby和Rubinius具有单态(IronRuby)或多态内联缓存,答案显然是否定的

现代Ruby实现已经进行了大量优化。例如,对于某些操作,Rubinius的Hash类比YARV的快。现在,在你意识到Rubinius的Hash类是在100%纯Ruby中实现的,而YARV是在100%手工优化的C中实现的之前,这听起来并不是非常令人兴奋

因此,至少在某些情况下,Rubinius可以生成比GCC更好的代码

或者这是谷歌投入V8项目的资源问题

对。不仅仅是谷歌。V8的源代码已经有25年的历史了。在V8上工作的人还创建了Self VM(迄今为止是有史以来创建的最快的动态OO语言执行引擎之一)、Animorphic Smalltalk VM(迄今为止是有史以来创建的最快的Smalltalk执行引擎之一)、HotSpot JVM(有史以来创建的最快JVM,可能是最快的VM周期)和OOVM(史上最高效的Smalltalk虚拟机之一)

事实上,V8的首席开发人员Lars Bak对其中的每一个,以及其他几个都进行了研究

发表评论