Python技术迷

“让Python快5倍”最新计划:优化解释器和内存管理

出品:OSC开源社区(ID:oschina2013)

2020 年秋,CPython 核心开发者 Mark Shannon 提出了关于 Python 的几个性能改进,这个提议被称为 “香农计划” (Shannon Plan)。

Image

Shannon 随后创建了 Faster Cpython 项目,他希望在 4 年的时间里,通过多个版本的更新将 Python 的速度提升 5 倍。

不久之后微软正式加入该计划,该公司支持包括 Mark Shannon、Guido van Rossum 在内的开发人员,致力于「Faster CPython」项目的研究。

👉点击领取Python面试题手册

Python从入门到进阶知识手册

近日,Mark Shannon 和 Michael Droettboom 介绍了面向 Python 3.13 的计划。

Image

他们提出了三个可并行推进的工作:

  • 推出 Tier 2 优化器

  • 从 Python 代码中启用子解释器 (PEP 554)

  • 优化内存管理

Tier 2 优化器的目标是将花在解释器上的时间减少至少 50%,其工作计划大致如下:

  • 让 Tier 2 解释器运转起来

  • 生成 superblocks

  • 实现基本的 superblock 管理功能

至于从 Python 代码中启用子解释器,这项工作建立在 Python 3.12 中 per-interpreter GIL 的基础上,方便 Python 程序员利用 Python 代码子解释器中更好的并行性(无需编写 C 扩展)。

目前已有针对这项工作的草案:PEP 554。首先需要更新并推动早日获得批准,以便在必要时改变方向。

最后,关于优化内存管理方面。性能分析数据显示,内存管理和循环 GC 花费了相当多的时间。目前的计划是:

  • 通过改进数据结构来减少分配

  • 花费更少的时间进行循环 GC

至于官方 JIT,Shannon 曾表示实现 JIT 的第一步是实现一个跟踪解释器,但由于需要兼顾其他工作,引入 JIT 编译器的工作还有一段路要走,“最早可能要到 3.13 才能到达”。(其实 Shannon 一直对 CPython 是否真的需要引入 JIT 持怀疑态度)

有开发者“锐评”了该团队与另一个项目的内部斗争 —— 完全移除 CPython 解释器的 GIL(全局解释器锁)。

Image

他认为 Faster Python 团队在这场斗争中在“政治”上处于更好的位置。

Image

Image程序员交流群Image

扫码进群记得备注:城市、昵称和技术方向。

👇扫描下方二维码,逆袭成长👇

Image
Image
Image热门推荐

Image