Python 2.x与3.x的速度比较

35 投票
5 回答
14989 浏览
提问于 2025-04-15 18:19

我是一名博士生,平时用Python写代码来做研究。我的工作流程通常是:先对代码做一些小改动,然后运行程序,看看结果有没有改善,再重复这个过程。因为这样,我发现自己花在等待程序运行上的时间比实际工作时间还多(这也是很多人都有的经历)。我现在用的是最新的Python 2版本,所以我想知道换成Python 3会不会让我程序运行得更快。目前,我没有特别强烈的理由去换Python 3,所以如果两个版本的运行速度差不多,我可能还是会继续用2.x。我知道为了让代码在Python 3上运行,我得稍微修改一下代码,所以直接在两个版本上测试哪个更快并不简单。在我确认能获得速度提升之前,我不想花时间去更新代码到Python 3。

5 个回答

3

试着优化一下算法,或者换一种数据结构。通常这是提高性能的最好方法。

5

现在,Python 3的速度和Python 2差不多。如果你想要更快的速度,其实不是在Python 3和Python 2之间选择,而是可以考虑其他工具,比如Psyco、Cython等等。

不过,最近有计划将Unladen Swallow这个谷歌的项目与Python 3合并。这个项目是为了给Python实现一个即时编译器(JIT)。当然,这个合并不会很快完成,但将来可能Python 3的速度会比Python 2明显提高。他们声称已经在Python 2上提高了10%的速度,目标是让速度提升到5倍。

想了解更多信息,可以查看 PEP 3146

编辑:正如Brian所说,PEP 3146已经被撤回。

23

这篇文章(在archive.org上)提到,Python 3.0在某些方面的速度其实比Python 2.6慢,虽然我觉得很多问题已经解决了。不过,Numpy还没有移植到Python 3.0上,而Numpy是一个性能很高的库,很多数字计算的功能都是用C语言写的。希望它能在2009年底或2010年初准备好。

你不应该把性能作为切换到Python 3的理由;我觉得你不会看到持续的速度提升。

补充:支持Python 3的Numpy版本已经发布。

补充2:这个回答(以及对这个问题的其他回答)已经过时了。

撰写回答