性能: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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章