为什么Ruby 1.9比Python 2.7和3.2快?

10 投票
3 回答
19022 浏览
提问于 2025-04-16 17:34

我看了一些链接:http://pack.li/L

Ruby 1.9的速度似乎比1.8快了两倍……而且比Python 2.7和3.2还要快。

我做了一些测试,不仅仅是在递归方面(我知道Python在这方面表现不佳),在一些更常见的操作上也有提升。

所以我想问的是:Ruby团队是怎么做到的?速度提升了两倍?他们是不是用了什么JIT编译器或优化工具之类的?

3 个回答

6

除了@egarcia和@viraptor提到的观点,我想补充一点,这些基准测试比较的是Ruby和CPython,后者是Python的一种具体实现,而不是比较这两种语言本身。其实还有其他更快的Python实现,比如PyPy。而Ruby也有不同的实现方式。所以我们不能简单地比较“语言性能”,只能比较具体的实现。

想了解更多关于快速的2.x版本Python的信息,可以访问这个链接 - http://speed.pypy.org/

6

你提到了一篇博客,里面展示了两种简单的算法实现,但这两种实现都不是很好。然后作者对这两个看似复杂的程序进行了比较,得出了“这个运行环境比另一个环境快得多”的结论。

其实,这些基准测试并不能证明什么(除了在特定测试下的执行速度),如果你仔细看看这些实现,你可能会发现某些地方在Python中做得更好。你可以自己创建一个基准测试,频繁使用这些优化的部分,然后“证明”结果是相反的。

28

我是一名Ruby程序员,我觉得你可能没有完全读懂那些(相当老旧的)文章。两篇文章都承认使用了“耸人听闻”的标题。而且它们使用的算法也不是最优的。所以在我看来,这些文章的价值不大。

我知道的“最佳”比较编程语言的地方是 http://benchmarksgame.alioth.debian.org/。我用“最佳”这个词是因为正如其他人所说,仅仅根据一些特定的实现来评估语言的速度,缺乏统计上的严谨性。

话虽如此,如果把Ruby 1.9和Python 3进行比较,你会得到 这些结果

结果是:在10个测试中,Ruby 1.9在2个测试中比Python快。在4个测试中速度相似,而在剩下的测试中则更慢(最后一个例子实在太差,我甚至想说它是个例外)。

所以,根据这10个不同的测试结果,我们只能得出结论:不,Ruby并不比Python快(只有在某些特定情况下快)。

撰写回答