发布时间:2024-12-27
浏览次数:
Python 3.13.0 主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。
Python 3.13.0 最新稳定版已于 10 月 7 日正式发布,对语言、实现和标准库进行了一系列更改。
据称该版本原定于 10 月 1 日推出,但由于在特定工作负载中出现了“明显”的性能回归问题,最终导致推迟发布。米博体育注册
性能回归问题由此前引入的增量循环垃圾收集器导致,正式版已将该功能回滚,Python 团队将在 Python 3.14 中重新考虑引入该功能。
Python 3.13 带来了两项重大更新:全局解释器锁的可选禁用 (no-GIL)和实验性的即时编译器 (JIT)。
GIL 的移除可提高基于线程的并行处理能力,从而优化多线程程序的性能;JIT 编译器将 Python 代码编译为机器代码,以提高代码执行效率。
这些改进预计会显著提升 Python 代码的性能,尤其是在 CPU 密集型任务上。
如上图所示, Python 3.13 在 禁用 GIL 的自由线程模式下性能明显优于其他版本,这 表明此版本的 Python 能够充分利用计算机上的所有内核。
按照 Python 开发团队的计划,no-GIL 的实现将分成三个阶段:
实验阶段。通过提供 build-time 选项,让开发者在构建时选择启用自由线程 (free-threaded)。在此阶段对外明确告知是实验性的,不支持用于生产环境。
支持但不默认阶段。该阶段将在 API 和 ABI 变更充分解决,并且有足够的社区支持时开始启动。
默认阶段。此时默认启用自由线程(初期仍支持禁用),但此阶段确切的标准很难确定,目标是使开发者尽可能无缝且无痛地进行升级和兼容。