Python 2.x和3.x速度

我是一名博士生,使用Python编写我用于研究的代码。 我的工作stream程通常包括对代码进行小的更改,运行程序,查看结果是否改善,以及重复此过程。 正因为如此,我发现自己花费了更多的时间来等待我的程序运行,而不是实际上运行它(我知道一个共同的经验)。 我目前在我的系统上使用了最新版本的Python 2,所以我的问题是切换到Python 3是否会给我提速。 在这一点上,我没有真正有理由转向Python 3,所以如果执行速度相似,我可能会坚持使用2.x。 我知道我将不得不稍微修改一下我的代码才能在Python 3中工作,所以在这两个版本上testing它看起来运行得更快并不是微不足道的。 我需要相当有信心,我会花时间更新我的代码到Python 3之前,我会得到一个速度的提高。

这篇文章(archive.org)说,有几点Python 3.0实际上比Python 2.6慢,但我认为很多这些问题已经解决了。 话虽如此,Numpy还没有被引入到Python 3.0中,那就是隐藏了许多高性能(用c编写的)数字function的东西。 希望能在2009年底或2010年初准备好。

你不应该认为性能是切换到Python 3的理由; 我不认为你会看到一致的速度提高。

编辑:支持Python 3的Numpy版本已经发布。

编辑2: 这个答案(和这个问题的其他答案)已经过时了

现在Python 3的速度差不多和Python 2是一样的…如果你正在寻找速度,那不是Python 3 vs Python 2,而是Psyco,Cython等其他工具。

但是,最近出现了将Unladen Swallow(Google项目)与Python 3实现Python上JIT的计划结合起来的计划。当然,这不会很快,但是在一段时间内,速度可能会明显提高Python 3上的Python 2.他们声称已经提高了10%的速度(在Python 2上)。 他们的目标是将速度提高到5倍。

欲了解更多信息,请参阅PEP 3146

编辑:正如布莱恩评论,PEP 3146退休了。

尝试改进algorithm或改变使用的数据结构。 这通常是提高性能的最好方法。

我不能回答你的问题的根源,但是如果你读到任何关于io模块性能低下的事情,请不要理会。 这是Python 3.0中的绝对性能问题,但是它们在Python 3.1中已经得到很大的解决。

我有系统发育分析,需要很长时间才能运行,并使用大约六打python脚本以及其他生物信息学软件(肌肉,clustal,爆炸,甚至R!)。 我使用临时文件来保存中间结果,并使用subprocess模块将主文件粘贴到一起。 将主设备更改为仅运行我想testing的修改后的零件很容易。 但是,如果这些变化是早期的步骤,而且只有在整个过程结束时才知道它有多好,那么这个策略就没有什么帮助。