推出 Pyston-lite,一个原生 Python 的 JIT 编译器

Pyston 项目的开发人员使用现代 JIT 编译技术提供了 Python 语言的高性能实现,并提供了 Pyston-lite 扩展以及 CPython 的 JIT 编译器的实现。 虽然 Pyston 是 CPython 代码库的一个分支并且是单独开发的,但 Pyston-lite 被设计为通用扩展,旨在连接到标准 Python 解释器 (CPython)。

Pyston-lite 允许您通过使用 PIP 或 Conda 包管理器安装附加扩展来使用基本的 Pyston 技术,而无需更改解释器。 Pyston-lite 已经托管在 PyPI 和 Conda 存储库中,要安装它,只需运行命令“pip install pyston_lite_autoload”或“conda install pyston_lite_autoload -c pyston”。 提供了两个包:pyston_lite(直接 JIT)和 pyston_lite_autoload(在 Python 进程启动时执行自动 JIT 替换)。 还可以使用 pyston_lite.enable() 函数以编程方式控制应用程序中 JIT 的包含,而无需安装自动加载模块。

尽管 Pyston-lite 并未涵盖 Pyston 中可用的所有优化,但与常规 Python 10 相比,使用它可以将性能提高约 25-3.8%。 未来,计划将 Pyston 中的大部分优化转移到 Pyston-lite,并扩展支持的 CPython 版本(第一个版本仅支持 Python 3.8)。 更多的全球计划包括与 CPython 团队合作,为 JIT 实现新的 API,从而可以更全面地控制 Python 的工作。 正在讨论将提议的更改纳入 Python 3.12 分支。 理想情况下,正在考虑将所有功能从 Pyston 转移到扩展中的可能性,这将使我们能够避免维护自己的 CPython 分支。

除了 Pyston-lite 之外,该项目还发布了成熟的 Pyston 2.3.4 软件包的更新,其中提供了新的优化。 在pyperformance测试中,2.3.4版本比2.3.3版本快了约6%。 与 CPython 相比,整体性能提升估计为 66%。

此外,我们还可以注意到主项目中 CPython 3.11 开发周期内开发的优化,在某些测试中可以将性能提高 25%。 例如,在CPython 3.11中,提高了缓存基本模块字节码状态的效率,这将使脚本的启动速度加快10-15%。 函数调用已显着加速,并添加了标准操作的专用快速解释器。 移植 Cinder 和 HotPy 项目准备的一些优化工作也在进行中。

此外,在nogil项目中,正在研究一种在没有全局解释器锁(GIL,Global Interpreter Lock)的情况下构建CPython的实验模式,该模式不允许从不同线程并行访问共享对象,从而阻止了多线程上操作的并行化。 -核心系统。 作为 GIL 问题的另一种解决方案,正在开发将单独的 GIL 绑定到进程内运行的每个解释器的功能(多个解释器可以在一个进程中运行,但它们并行执行的效率取决于 GIL)。

来源: opennet.ru

添加评论