2022-08-17 19:01:58
Python 3.13.0 年度大更新正式发布:实验性支持no-GIL,性能显著提升
Python 3.13.0 最新稳定版已于 10 月 7 日正式发布,此次更新对语言、实现和标准库进行了一系列重要更改,为开发者带来了诸多新特性和性能优化。
一、重大更新亮点
全局解释器锁的可选禁用 (no-GIL)
Python 的全局解释器锁(GIL)一直是多线程性能提升的瓶颈。在 Python 3.13 中,引入了实验性的 no-GIL 支持,允许开发者在构建时选择禁用 GIL,从而提高基于线程的并行处理能力。这一改进使得多线程程序能够充分利用计算机上的所有内核,显著提升性能,尤其是在 CPU 密集型任务上。

如上图所示,在禁用 GIL 的自由线程模式下,Python 3.13 的性能明显优于其他版本。
实验性的即时编译器 (JIT)
Python 3.13 还引入了实验性的即时编译器(JIT),该编译器能够将 Python 代码编译为机器代码,从而提高代码执行效率。启用 JIT 的 Python 3.13 比 Python 3.12 和常规的 Python 3.13 更快,为开发者带来了显著的性能提升。

上图展示了启用 JIT 后 Python 3.13 的性能优势。
二、no-GIL 的实现计划
Python 开发团队计划将 no-GIL 的实现分成三个阶段:
三、其他值得关注的变化
新的交互式解释器 (REPL)
Python 3.13 提供了一个新的交互式解释器(REPL),为开发者提供了更加友好和高效的编程体验。

iOS 和 Android 官方支持
Python 3.13 将 iOS 和 Android 正式纳入 Tier 3 级别的官方支持平台,为移动开发者提供了更多的选择和便利。
更好的错误信息
Python 3.13 提供了更加详细和清晰的错误信息,帮助开发者更快地定位和解决问题。
改进静态类型
Python 3.13 对静态类型进行了改进,提高了类型检查器的准确性和可靠性。
支持的最低 macOS 版本更新
Python 3.13 支持的最低 macOS 版本已从 10.9 更改为 10.13(High Sierra),并且今后将不再支持较旧的 macOS 版本。
四、总结
Python 3.13.0 的发布标志着 Python 语言在性能和功能上的又一次重大飞跃。实验性支持 no-GIL 和 JIT 编译器的引入,为开发者带来了显著的性能提升。同时,新的交互式解释器、iOS 和 Android 的官方支持、更好的错误信息和改进的静态类型等特性,也使得 Python 3.13 更加完善和易用。开发者可以访问