为什么ruby 1.9比python 2.7和3.2更快?

Eri*_*ric 10 ruby python performance

我读了这一堆链接:http://pack.li/L

ruby 1.9似乎比1.8快2倍,比python 2.7和3.2快

我做了一些测试,它不仅仅是递归(我知道python对此很糟糕),也提供更多标准的东西.

所以这是我的问题:红宝石团队是如何做到的?2倍改善?它们是否包含JIT编译器/优化器或其他东西?

kik*_*ito 28

我是一个rubyist,我认为你没有完全阅读那些(相当古老的)文章.两人都承认曾使用过......"耸人听闻"的头条新闻.并且他们使用的算法并不是最优的.所以他们在我眼里没什么价值.

我所知道的用于比较语言的"最佳"地点是http://benchmarksgame.alioth.debian.org/.我引用"最佳"是因为正如其他人所说,基于一堆特定实现的语言速度的提升缺乏统计学的严谨性.

也就是说,如果你在Ruby 3中使用ruby 1.9,你会得到这些结果

结果是:在使用的10个测试中,ruby 1.9在2个测试中比Python快.它在4中相似,而在其余部分则较慢(最后一个例子非常糟糕,我很想把它称为虚假)

因此,根据这10个不同的测试,人们只能得出结论,不,ruby并不比Python更快.(仅在某些特定情况下).


vir*_*tor 6

因此,您指出了一个博客,该博客显示了2个简单的算法实现,这个算法很糟糕......然后作者比较了这两个人为的程序,并决定整个"(运行时环境)抽烟(其他环境)".

不仅那些基准测试没有证明任何东西(除了特定基准测试的执行速度),但是如果你实际查看了实现,你可以找到一些在python中更优化的位,创建自己的基准测试,经常使用该位并"证明"相反的结果.


Dan*_*uev 6

除了@egarcia和@viraptor的评论之外,我还要注意这些基准测试比较Ruby和CPython,特别是python实现,而不是语言.有更快的python实现,比如PyPy.并且还有不同的Ruby实现.您无法比较"语言表现",只能比较具体实施.

有关快速2.x python的更多信息 - http://speed.pypy.org/

  • @Eric:你跑了多少袜子? (2认同)
  • @igouy,它们通常被称为"参考实现"而不是"标准".是的,CRuby和CPython是Ruby和Python的参考实现.所以呢?参考实现在这里定义语言的语法和语义,而不是其性能.PyPy或JRuby与CPython或Ruby MRI(CRuby)相比,不亚于Python和Ruby.至于"众所周知的网站",PyPy正在转向python.org基础设施,很快(TM)也可以从python.org获得[不是它实际上很重要,因此]. (2认同)