Python 3.13 测试版发布:功能冻结、免费线程选项、实验性 JIT 编译器

Python 3.13 beta 1 已经发布,其关键新功能包括禁用全局 Interpeter Lock (GIL) 以实现自由线程的选项,以及实验性的即时编译器,这两者都可以提高性能。beta 版的出现也意味着 3.13 的功能已冻结。

大多数排名(例如Redmonk 的排名)将 Python 的受欢迎程度排在 JavaScript 之后,由于其与人工智能和机器学习的关联,其使用率不断上升。然而,CPython 相对较慢,因此性能是最近发布的版本关注的重点。

版本 3.13 包含发行说明中所说的“基本 JIT 编译器”,但目前默认情况下处于禁用状态。此功能的 PEP(Python 增强提案)解释说,这是“与 CPython 传统执行 Python 代码的方式特别显著的不同”。Python 目前编译为字节码,在运行时进行解释。Python 3.12 已经包含将指令分解为更小的微操作然后对其进行优化的代码,但这样做的开销目前超过了性能优势,因此它被禁用。 

JIT 编译器更进一步,对优化的微操作进行静态编译,目的是克服瓶颈并提高性能。只有满足几个标准后才能启用该编译器,这些标准包括至少 5% 的性能提升、对部署的干扰最小以及获得 Python 指导委员会的批准。此外还可能存在安全隐患,另一个缺点是运行时内存使用量更大。

如果默认情况下禁用该功能,为什么要添加它?目前“JIT 与现有的专用解释器一样快”,因此 5% 的性能提升目标尚未实现;但即使如此,该功能的作者表示,这也是一项“重大成就,也是该方法被认为足够可行,可以合并到主要功能中以进行进一步开发的主要原因。”目前已有许多改进正在进行中,因此这很可能成为未来的性能胜利。

Python 3.13 中的另一个重要实验是将 GIL 变为可选的,从而消除了并发的一个主要障碍。根据 PEP,“这种并发性的缺乏往往比执行 Python 代码的速度更成问题。”另一个优点是 Python 代码将能够更好地表达并行性,这对于使代码更易于维护具有重要意义,并将改进 Python 作为学习编程的语言。

3.13 版中还有更多功能,包括一个新的交互式 shell,它为提示添加颜色,支持多行编辑和历史记录保存,以及使用 F1 键进行帮助浏览。不过,这仅适用于类 Unix 系统,例如 macOS 和 Linux。 

苹果的 IOS 现在将成为 Python 的支持平台,但仅限于第 3 层(三个支持级别),并且不包括控制台或交互式使用。

3.13 中没有新模块,但许多模块都有改进。一些模块将被弃用,等待 3.14、3.15 或 3.16 版本删除。

Python 3.13发布计划包括四个 beta 版本和两个候选版本,最终版本定于 2024 年 10 月初发布。尽管功能冻结,但发布经理 Thomas Wouters表示,“在候选版本发布阶段开始之前,功能可能会被修改,或在极少数情况下被删除。”此阶段定于 7 月底。


本站全部资讯来源于实验室原创、合作机构投稿及网友汇集投稿,仅代表个人观点,不作为任何依据,转载联系作者并注明出处:https://www.lvsky.net/257.html

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论