专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
程序员小灰  ·  大A股,教我做人 ·  昨天  
OSC开源社区  ·  祖师爷Linus被内核维护者整烦了,别再被b ... ·  4 天前  
OSC开源社区  ·  快手:从Clickhouse到Apache ... ·  5 天前  
程序员小灰  ·  好家伙,尤雨溪创办公司啦!已融资3200万! ·  1 周前  
程序猿  ·  {car: {car: {car: ... ·  6 天前  
51好读  ›  专栏  ›  程序猿

Python正式发布年度大更新3.13.0:实验性支持no-GIL、性能起飞!

程序猿  · 公众号  · 程序员  · 2024-10-12 22:25

正文

来自公众号:OSC开源社区
链接:https://www.oschina.net/news/315112/python-3130-final-released
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.12 和 3.13 的性能测试对比,可以看到 no-GIL 和 JIT 带来的性能提升。
如上图所示,Python 3.13 在禁用 GIL 的自由线程模式下性能明显优于其他版本,这表明此版本的 Python 能够充分利用计算机上的所有内核。
而启用 JIT 的 Python 3.13 也比 Python 3.12 和常规的 Python 3.13 更快。
按照 Python 开发团队的计划,no-GIL 的实现将分成三个阶段:
  • 实验阶段。通过提供 build-time 选项,让开发者在构建时选择启用自由线程 (free-threaded)。在此阶段对外明确告知是实验性的,不支持用于生产环境。
  • 支持但不默认阶段。该阶段将在 API 和 ABI 变更充分解决,并且有足够的社区支持时开始启动。
  • 默认阶段。此时默认启用自由线程(初期仍支持禁用),但此阶段确切的标准很难确定,目标是使开发者尽可能无缝且无痛地进行升级和兼容。


Python 3.13 其他值得关注的变化:

  • 一个新的交互式解释器 (REPL)

  • iOS 和 Android 被正式纳入 Tier 3 级别的官方支持平台

  • 提供更好的错误信息

  • 改进静态类型

  • 支持的最低 macOS 版本已从 10.9 更改为 10.13 (High Sierra)。且今后将不支持较旧的 macOS 版本

详细更新说明查看官方文档
https://docs.python.org/3.13/whatsnew/3.13.html

相关来源

https://www.python.org/downloads/release/python-3130/

https://realpython.com/python313-new-features/

https://blog.python.org/2024/10/python-3130-final-released.html


---END---