仅就性能而言,Python 3与Python 2.x相比如何?
仅就性能而言,Python 3与Python 2.x相比如何?
官方基准测试显示,Python 3.0 的速度比 2.5 慢。引自《Python 3.0 新特性》:
Python 3.0 进行了普遍化的改进,其结果是在 pystone 基准测试中,Python 3.0 的运行速度比 Python 2.5 慢了大约10%。最有可能的原因是取消了对小整数的特殊处理。虽然还有提升空间,但这需要在 3.0 发布后才会进行。
我认为任何差异都是微不足道的。例如,遍历列表将完全相同。
Python 3 的理念是清理语言语法本身-删除模糊不清的东西,如except Exception1, Exception2
,清理标准模块(没有 urllib、urllib2、httplib 等)。
实际上,你无法做太多事情来提高它的性能,尽管我想像像垃圾收集和内存管理代码这样的东西会有一些调整,但它不会是一个"哇,我的数据库统计生成代码用一半的时间完成了!"的改进-这是通过改进代码而不是语言获得的!
实际上,语言的性能是无关紧要的-所有解释型语言基本上以相同的速度运行。 我发现 Python 更快的原因在于所有内置模块和易于编写的语法-这在 Python3 中已经得到了改进,所以我想从这些方面来看,Python3 的性能比 Python2.x 更好。
我认为现在进行这种比较还为时过早。在测试版发布之前,请等待正式版本发布再进行基准测试。在发布之前,解释器可能会得到大幅度的改进,但总体来说,我认为对于大多数用途,性能是可以与其他语言相媲美的。如果你正在运行一个对速度要求非常高的应用程序,那么Python是否是正确的语言呢?
除非有一种新的虚拟机计划(我还没有听说过这样的计划),否则有足够的理由相信在长期内,Py3K的性能至少会渐近地等同于2.5。
可能需要几个月的时间,但最终会发生,因为Py3k的新功能中没有任何固有的性能不佳之处。
总之,我认为没有必要担心它。也不需要希望某种重大改进。
我不确定现在是否更快,但我必须期望它最终会更快,因为这是新的性能工作将发生的地方,而不是所有这些工作都会被回溯。