Python中新JIT功能介绍
原文中文,约6300字,阅读约需15分钟。
📝
内容提要
2023年12月下旬,CPython核心开发人员Brandt Bucher向Python 3.13分支提交了一个添加JIT编译器的请求。JIT是一种按需编译的设计,可以在代码第一次运行时进行编译。初步基准测试显示性能提高了5-9%。
🎯
关键要点
-
2023年12月,CPython核心开发人员Brandt Bucher向Python 3.13分支提交了添加JIT编译器的请求。
-
JIT(Just in Time)是一种按需编译的设计,可以在代码第一次运行时进行编译。
-
这一更改将是自Python 3.11以来对CPython解释器的最大更改之一。
-
Python编译器已经是JIT,因为它将Python代码编译为字节码。
-
JIT编译器通常指的是发出机器代码的编译器,与AOT(提前)编译器不同。
-
JIT编译器可以提高性能,初步基准测试显示性能提高了5-9%。
-
提议的JIT是一个复制和补丁(copy-and-patch)的JIT。
-
复制和补丁JIT的原理是将字节码转换为机器码模板,并在运行时填补参数。
-
与完整的JIT编译器相比,复制和补丁JIT的实现更简单,内存占用更少。
-
新的JIT编译器通过扩展Python 3.13的API来工作,允许发现可插拔的优化器。
-
在编译CPython源代码时,可以使用--enable-experimental-jit标志来启用JIT。
-
JIT编译器生成的机器码存储在内存中,直接执行以提高性能。
🏷️