欢迎访问 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正式版发布,我会做一个新旧编译器效率对比的测试。