TOC

关于 CPython 的 Shannon Plan

如果一直关注 Python,可能知道这些事情:

  1. 2018 年,Python 3.8 加入海象运算符,这是对 PEP 572 的实现。
  2. 而正是由于签署 PEP 572,Python 之父、仁慈独裁者、IT界头发守护神——龟叔(Guido van Rossum)被部分社区成员发生矛盾(可能龟叔被个别特有素质的开发者问候了),心灰意冷的龟叔随即宣布放弃仁慈独裁者身份,一心开发 Python。
  3. 2019 年 10 月,龟叔从供职六年多的 Dropbox 离职(Thank you, Guido),正式退休。
  4. 龟叔退休一年之后,去年年底,又宣布还是闲不住,加入微软。

龟叔

今天刚看到一个消息,微软资助龟叔搞了个香农计划,目标是在 4 年时间内实现将 Python 提速 5 倍,而且是无痛提升,不会导致兼容性问题。最早可以在明年发布的 3.11 中得到体现:提速至少一倍。

早干嘛去了,我都想问候一下龟叔了。总之,非常期待!!

虽然我觉得 Python 语言本身性能差,对目前 Python 生态影响很小,毕竟 CPU 密集型项目(重要的几个科学计算、人工智能库)都采用了 C 拓展,或者依赖 GPU 计算。

但性能如果能够有明显提升,还是可以为 Python 带来更多可能性。

演示文稿

Making CPython Faster 分享 01
Making CPython Faster 分享 02
Making CPython Faster 分享 03
Making CPython Faster 分享 04
Making CPython Faster 分享 05
Making CPython Faster 分享 06
Making CPython Faster 分享 07
Making CPython Faster 分享 08
Making CPython Faster 分享 09
Making CPython Faster 分享 10
Making CPython Faster 分享 11
Making CPython Faster 分享 12
Making CPython Faster 分享 13

PEP 659 -- Specializing Adaptive Interpreter

https://www.python.org/dev/peps/pep-0659/

PEP 659

“专业的自适应解释器”,这可能是下一步的主要动作。
判断代码的类型和值,以达到

本 PEP。建议使用一个专门的、自适应的解释器,该解释器对代码进行积极的专业化处理,但只在很小的区域内进行,并且能够以较低的成本迅速调整错误的专业化处理。在 CPython。中增加一个专门的、自适应的解释器将带来显著的性能改进。

其他优化项

  1. optimize frame stack, faster calls, tweak allocation
    优化帧堆栈,更快的调用,调整分配
  2. Zero overhead exception handling
    零开销异常处理

参考资料与拓展阅读