Python3.13将引入copy-and-patchJIT编译器

学学看科技 2024-01-13 17:51:10

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

via

根据 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 的性能。

1 阅读:561

学学看科技

简介:感谢大家的关注