slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
JIT 将在 Python 3.13 中出现
17611538698
webmaster@21cto.com

JIT 将在 Python 3.13 中出现

资讯 0 2115 2024-01-12 11:42:46

图片

据可靠消息,CPython 的下一个版本将会包含 JIT(Just In Time,即时编译器)。

根据一些用户进行的早期测试,它将带来一些直接的运行速度改进,以及未来仍有重大优化的良好前景。新的 JIT 编译器将包含在Python 3.13 中,是可选的,开发者需要使用 -enable-experimental-jit 配置 CPython 构建。

内核 Python 开发人员 Brandt Bucher 于上个月底提交了带有初始代码的拉取请求。3.13版本计划于2024年10月发布。

JIT 编译器已被其他高级语言(例如 Java、PHP 和 C#)使用,通过在运行时将解释代码编译为本机机器代码,以便提升巨大速度改进,不再需要开发人员执行任何额外的步骤。

JIT 编译器的目标包括广泛的操作系统支持、实现的低复杂性与简单部署,不会为安装 Python 的最终用户添加依赖项。

Bucher 在 CPython 核心开发者冲刺 (CPython Core Developer Sprint) 的演讲中所述,这是通过一种称为“复制和补丁编译”的技术来实现的,该技术由斯坦福大学的研究人员 2021 年提出,研究人员Haoran Xu 和 Fredrik Kjolstad 表示,这个想法是将“来自大型二进制实现变体库的代码拼接在一起”。我们将这些二进制实现称为模板,因为它们存在漏洞,必须在代码生成过程中插入缺失值。”

与其他 JIT 编译器技术相比,复制和修补方法对于 CPython 来说更容易实现,但仍然生成高质量的代码。

JIT技术基于LLVM生态,编译器用 clang,编译参数开 -o3 获取最大的性能。但仅在构建 CPython 运行时时存在,而不是在部署时存在。支持的操作系统包括 Windows、适用于 x86 和 ARM64 的 macOS,以及适用于 x86 和 ARM64 的 Linux。

使用新的 JIT 编译器的 CPython 快了多少?

Bucher 在GitHub 评论中说:

“就目前情况而言,它比二级解释器快 2% 到 9%,具体取决于平台(各个基准差异很大,从慢 13% 到快 47%),”

简单的总结是,我们不应该期望特别显著的速度提升,尽管其与其它加速 Python 的产品一起努力,这是一个值得赞赏的增量提升。

下一步迁移到 JIT 编译器会在以后的版本中实现更好的性能。Bucher 在描述了一些未来可能的优化,这些优化将改进生成的代码,例如“使用 ghccc 调用约定来实现更高效的尾部调用(在指令的开头和结尾减少推送、弹出和寄存器混洗)。每一点都增加了一点点复杂性,并且可能应该成为单独审查的项目。不过,我已经粗略地制作了其中许多原型,证明它们是可行的。”

根据 Bucher 的说法,该工作是在 CPython 3.11(添加了专门的自适应解释器)和3.12(使用领域特定语言来生成解释器,允许在构建时进行修改和分析)的基础上推进的。

此项工作被视为加速 Python 长期努力的一部分。

作者:洛逸

来源:21CTO综合

评论