性能:Python 3.x 与 Python 2.x [关闭]

Posted

技术标签:

【中文标题】性能:Python 3.x 与 Python 2.x [关闭]【英文标题】:Performance: Python 3.x vs Python 2.x [closed] 【发布时间】:2010-09-15 06:53:00 【问题描述】:

仅就性能问题而言,Python 3 与 Python 2.x 相比如何?

【问题讨论】:

问这个问题两年后,不知道答案是否还是一样。 问这个问题七年后,答案还是一样。 【参考方案1】:

在官方基准测试中,3.0 比 2.5 慢。来自"What’s New in Python 3.0":

3.0 的最终结果 概括是 Python 3.0 运行 pystone 基准大约 10% 比 Python 2.5 慢。最有可能的 最大的原因是删除 小整数的特殊情况。 有改进的余地,但它 将在3.0发布后发生!

【讨论】:

这在 2015 年仍然普遍如此,如果有问题的代码有很多字符串操作,截至 2015 年 11 月,Python 2.7 通常比 Python 3.5 快。【参考方案2】:

我会说任何差异都将是微不足道的。例如,循环遍历列表将完全相同。

Python 3 背后的想法是清理语言语法本身 - 删除像 except Exception1, Exception2 这样的模棱两可的东西,清理标准模块(没有 urllib、urllib2、httplib 等)。

确实没有什么可以提高它的性能的,虽然我想像垃圾收集和内存管理代码这样的东西会有一些调整,但这不会是“哇,我的数据库统计生成代码”一半时间完成!”改进——这是你通过改进代码而不是语言得到的!

真的,语言的性能无关紧要 - 所有解释语言基本上都以相同的速度运行。 为什么我发现 Python “更快”是所有内置模块和易于编写的语法 - 在 Python3 中得到了改进,所以我猜从这些方面来说,是的,python3 的性能比python2.x..好。

【讨论】:

“所有解释语言基本上都以相同的速度运行”是非常不正确的。解释的代码路径可以编译为本机代码,请参阅最近的 javascript VM 竞争对手。 这与语言无关,而是为它编写的编译器。您可以拥有一个 python 编译器,它的速度大致与 javascript 编译器一样快。【参考方案3】:

IO 库已经完全重新设计,新的实现是纯 Python 的。虽然这是一项功能改进,但目前速度要慢得多。用 C 重写大部分新系统的工作正在进行中。有关详细信息,请参阅thesebugreports。

【讨论】:

【参考方案4】:

我认为最终进行这种比较还为时过早。等到它退出测试版后再对其进行基准测试。解释器可能会在发布之前得到极大的改进,但总的来说,我认为对于大多数用途来说,性能是相当的,如果你正在运行一个真正注重速度的应用程序,python 真的是正确的语言吗?

【讨论】:

【参考方案5】:

除非有某种新 VM 的计划(我还没有听说过任何这样的计划),否则有理由相信,从长远来看,Py3K 的性能将至少渐近地相等2.5

这可能需要几个月的时间,但最终会发生,因为 Py3k 的新功能中没有任何东西天生就性能较差。

总而言之,我认为没有地方担心它。也不希望有某种重大改进。

【讨论】:

(更新 30.03.2010):这个答案在今天并不是很重要,因为 unladen-swallow 将被合并到 Python 3 中并提供明显的加速。公平地说,这一个新的虚拟机:-)【参考方案6】:

如果它现在更快,我不认为,但我不得不期待它最终会是,因为新的性能工作将发生在那里,而不是所有这些都将被向后移植。

【讨论】:

以上是关于性能:Python 3.x 与 Python 2.x [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu下python 2.7与python 3.X的转换

python 3.x 与2.x的区别

菜鸟学Python第一天(安装,2.x与3.x区别)

320Python 2.x 与 3.x 的区别

初识python 2.x与3.x 区别

python2.x与3.x差别