【问题标题】:PyPy and CPython: are big performance increases planned?PyPy 和 CPython:是否计划大幅提高性能?
【发布时间】:2012-04-02 07:03:54
【问题描述】:

虽然我知道承诺大幅提高速度的项目可能会导致性能下降,但我认为加速 CPython 和/或 PyPy 的路线图并不多。

是否有任何计划可以大幅提升核心解释器(例如--with-computed-gotos)的速度?他们的标准库怎么样(例如Decimal in CIO in C)?

我知道HotPy(2) 有一个加速 CPython 的计划大纲,但这听起来像是一个单人项目,在核心 CPython 方面没有太多吸引力。

PyPy 有 some information 关于性能不是很好的地方,但我在文档中找不到加速的大目标。

那么,是否有已知的目标可以为 Python 实现带来巨大的性能提升?

【问题讨论】:

  • PyPy 在不到两年的时间里提高了 3 倍。你还有什么期待?他们提前告诉你他们明年会快多少?
  • 如果你问一个关于你希望进一步优化的代码的问题可能会更有趣。
  • @TryPyPy - 您编写/使用哪种类型的程序需要提高性能?这些计划的哪些领域需要改进?您是否向 PyPy 和 CPython 开发人员寻求帮助或指示这些领域何时可能发生变化?
  • @TryPyPy:他们没有合并 Unladen,因为项目被放弃了。
  • @TryPyPy:请参阅python.org/dev/peps/pep-3146 中的撤回通知以及其中的第一个参考。

标签: python performance jit pypy


【解决方案1】:

我将回答有关 PyPy 的部分。我不能代表 CPython,但我认为正在进行性能改进(尽管不要引用我的话)。

没有项目计划,因为它真的不是那样工作的。所有主要部分(如“JIT”或“垃圾收集”)基本上都已完成,但这并不意味着一切都很快。肯定有一些事情很慢,我们通常会根据具体情况进行改进 - 如果您认为某些事情太慢,请提交错误报告。我在我的盘子上有很多性能改进,这肯定会有助于扭曲,但我不知道其他的。

可能值得一提的大事:

  • 改进的框架,应该有助于递归和未内联的函数调用(例如包含循环)

  • 更好的字符串实现,适用于各种用途,如连接、切片等。

  • 更快的追踪

  • 更紧凑的元组和对象,存储展开的结果

我能保证它会在什么时候以何种方式或多少加快速度吗?绝对不是,但平均而言,我们设法在每个版本之间实现 10-30% 的速度改进,通常是每 4 个月左右一次,所以我想有些东西会变得更快,但没有你给我水晶球或时光机,我不会告诉你的。

干杯, 菲哈尔

【讨论】:

【解决方案2】:

您的 cmets 掩盖了很多混乱...
PyPy 和 Python 目前具有非常不同的性能能力。
Pypy 目前平均比 CPython 快 5 倍以上。
HotPy 与 CPython 无关。这是一个单人项目,是一个全新的虚拟机(尚未发布,所以我不能说它的性能)。

目前,PyPy 项目有很多活动,而且他们每天都在改进它。
有一个 numpy 端口处于非常高级的开发阶段,他们正在改进 ctypes、Cython 兼容性,很快就会有一个完整的 Python3 实现。

我相信 PyPy 目前在性能方面可以与 V8 JavaScript 引擎和类似项目配对。
如果你想要速度和 Python,请关注这个项目。

【讨论】:

  • 谢谢,我知道目前的情况(例如speed.pypy.org),但我正在寻找改进计划,例如code.google.com/p/unladen-swallow/wiki/ProjectPlan。请参阅 HotPy(2) 问题中的链接:它现在是加快 CPython 速度的提议,但看起来仍然是一个单独的项目。
  • 嘿,你是对的!我不知道 Hotpy(2)。我知道 Mark Shannon 最初的 Hotpy 项目,但它根本与 cpython 无关。至于 Unladen Swallow,不幸的是它无处可去,现在这个项目已经死了......
【解决方案3】:

答案是 PyPy 加速 CPython 的计划。 PyPy 的目标是成为一个高度优化的极其一致的 Python 解释器。该项目收集了他们能找到的所有基准,并为每个 pypy 构建运行所有基准,以确保不会出现性能回归。看看吧:http://speed.pypy.org/

我相信,当 cpython 的性能不再降低时(用于 web 开发工作),pypy 将完全准备好迎接黄金时段。 Raymond Hettinger(python 核心开发人员)称 PyPy 为“开启优化的 python”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2011-10-27
    • 1970-01-01
    相关资源
    最近更新 更多