当前位置: 欣欣网 > 码农

Python JIT新版编译器真是香~

2024-06-29码农

欢迎访问 Python3分钟 系列。 花3分钟时间 ,学习或温习一个Python知识点。

啥是JIT?

Python 3.13 引入 copy-and-patch JIT(Just-In-Time) 编译器, JIT Python 发展史上的一个重大改变,旨在提高 Python 代码的执行速度。

JIT 编译器的引入是 Python 性能优化的一大步,尤其是对于那些需要高性能计算的应用场景。

绝大多数的Java都以JIT方式提高其性能。

啥是Copy-and-patch

JIT 编译器在 Python 代码第一次运行时,将代码编译成机器语言,并在后 续运行时重用这些编译后的代码

这意味着随着程序的运行,性能会逐渐提高,因为更多的代码被编译成机器语言。这与传统的解释器相比,每次执行代码时都需要解释执行, JIT 编译器 只在第一次执行时花费编译时间

而新的JIT编译器采用了 Copy-and-patch 的设计,其工作原理是将字节码编译成一组 「模板」 ,然后在运行时使用正确的值进行拼接和修补。

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

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

这意味着普通 Python 用户不需要在他们的 Python 运行时中运行复杂的 JIT 编译器架构。

最后

此处埋个坑,等Python3.13正式版发布,我会做一个新旧编译器效率对比的测试。