Python 3.13 将引入 copy-and-patch JIT 编译器

2023 年 12 月下旬,CPython 核心开发者 Brandt Bucher 向 Python 3.13 分支提交了一个添加 JIT 编译器的 PR。

viahttps://github.com/python/cpython/pull/113465

根据 PR 的描述,该 JIT 编译器采用了名为"copy-and-patch"的设计,其工作原理是将字节码编译成一组“模板”,然后在运行时使用正确的值进行拼接和修补。这意味着普通 Python 用户不需要在他们的 Python 运行时中运行复杂的 JIT 编译器架构。

copy-and-patch JIT 编译器尽可能使用 LLVM 生态的工具,比如编译器采用 Clang,编译参数设为 -o3 以获取最大的性能,二进制工具用 llvm-objdump 和 llvm-readelf。

Copy-and-Patch 技术的优点是开发者无需手写汇编代码就可以生成高效的机器码,同时在运行期产生汇编代码的方式是快速的。

相比于完整的 JIT 编译器,copy-and-patch JIT 编译器只需要在编译 CPython 的机器上安装 LLVM JIT 工具。这种设计的好处是它减少了额外的开销,同时提高了 Python 的性能。


已发布

分类

来自

标签: