Python 3.13 获首个 Beta 版更新:改进解释器 / 编译器性能

liftword6个月前 (01-06)技术文章55

Python 3.13 beta 1发布了,主要新特性包括禁用全局解释器锁(GIL)以进行自由线程处理的选项,以及一个实验性的即时编译器,两者都可以提高性能。Beta版本的出现也意味着3.13版本已经冻结了功能。

大多数排名 - 比如来自Redmonk的这个排名 - 将Python排在流行程度仅次于JavaScript的第二位,由于与人工智能和机器学习的关联,使用量正在增加。不过,CPython相对较慢,其结果是性能成为近期版本的关注重点。

版本3.13包括发行说明称为“基本JIT编译器”的内容,尽管目前默认情况下已禁用。针对此功能的PEP(Python增强提案)解释称,这是“与CPython传统执行Python代码的方式明显不同的一步”。目前Python编译为字节码,然后在运行时进行解释。Python 3.12已经包括了将指令分解为更小的微操作然后对其进行优化的代码,但目前执行此操作的开销超过了性能的好处,因此已禁用。

JIT编译器进一步采取了静态编译优化微操作的步骤,旨在克服瓶颈并提高性能。它不会启用,直到满足几个条件,包括至少有5%的性能改进,对部署的干扰最小,以及得到Python steering council的批准。还有可能的安全性问题,另一个缺点是在运行时内存使用更多。

为什么包含了此功能但默认情况下已禁用?目前,“JIT的速度与现有的专用解释器几乎一样快”,因此尚未达到5%的性能增长目标;但是,此功能的作者表示,即使这样,这也是一个“重要的成就,这也是为什么这种方法被认为足够可行而被合并到主分支进行进一步开发的主要原因”。已经有许多改进正在进行中,因此这很可能成为未来的性能提升。

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

在3.13版本中还有更多内容,包括一个新的交互式shell,其中包括带颜色的提示,带有历史记录保留的多行编辑,以及使用F1键进行帮助浏览。但这只在类Unix系统(如macOS和Linux)上有效。

Apple的iOS现在将成为Python的支持平台,但仅为第3级(三个支持级别中的一个),不包括控制台或交互式使用。

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

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

主要更新内容如下:

  • 引入了全新交互式解释器,改进了性能,同时支持多行编辑 / 颜色;
  • 引入了“实验性”自由线程构建模式,通过让全局解释器锁成为可选,从而允许线程更并发地运行(为了实现相关模式,同时引入了 mimalloc 的修改版本);
  • 改进了即时编译器 (JIT) 性能;
  • 循环垃圾收集器现在更具增量性,收集垃圾时间应当更短;
  • 减少了 RAM 用量及 .pyc 文件的体积;
  • 为 dbm 模块添加了新的 dbm.sqlite3 后端,现在在创建新文件时默认使用。

相关文章

都2023年了,为什么大家还都在吹捧 Python?

2023 年,Python 还可学吗?答案当然是可。近些年间,Python 的火热有目共睹,作为一种功能强大的高级编程语言,在 2018 年的时候它的流行程度就得到了大幅提高。入门人工智能有很多种选择...

学JAVA好?还是学Python好?

近几年随着Python的迅猛发展,是大多数人产生了迷茫,一方面学Java是行业的主流,另一方面Python发展所带来的巨大红利确实很诱人,再加上Python本身所具备的优点,让学Python也成为大家...

盘点爬虫语言为何选择Python而不是Java

大数据时代已经到来,当大家按照大数据的思维来推动工作业务开展时,就会发现大数据实际上已经遍布我们日常生活的方方面面。大数据分析之所以大,是因为其分析的数据是全量数据(或接近全量),其和以前的采样分析(...

一次Java和Python的简单且直观的比较

我的主要开发语言是Java,并且多年来主要项目基本都是使用Vue+Springboot来实现客户业务。最近几年,Python绝对是成长最快的语言,用户量暴增,已经成了很多大学的主要编程课程了。同时,码...

一文了解:Python对财会从业者的2大帮助!

2024年初级会计考试已经结束,不少同学翘首以盼准备踏入财会行业,但有一个问题是:光凭证书不一定能找到满意的工作。证书是大家踏入会计行业的敲门砖没错,但很多用人的单位除了证书,还会看重你是否具备相关上...

万万没想到,除了香农计划,Python3.11竟还有这么多性能提升

众所周知,Python 3.11 版本带来了较大的性能提升,但是,它具体在哪些方面上得到了优化呢?除了著名的“香农计划”外,它还包含哪些与性能相关的优化呢?本文将带你一探究竟!作者:Beshr Kay...