神器!微软发布 Python 的 JIT 编译器:Pyjion!
共 1087字,需浏览 3分钟
·
2021-12-23 22:26
出品 | OSC开源社区
用于 Python 3.10 及以上版本的嵌入式 JIT 编译器 Pyjion 已发布 1.0 版本。
Pyjion 拥有以下特性:
配置文件引导的 JIT 编译器 原生 64 位浮点数和整数支持 小而快的编译器 支持 Windows、macOS 和 Linux 支持 Intel 和 ARM CPU 内置 IL 和 ASM 反汇编器 支持本机调试和分析工具
Pyjion 是由 Python 软件基金会研究员和微软研究员 Anthony Shaw 合作开发的一种用于 Python 的即时 (JIT) 编译系统,它不是像 PyPy 那样的独立 runtime,而是在 CPython 3.10 下运行的可安装库。
安装后,只需导入 Pyjion 库并启用,即可在程序中使用:导入后运行的所有内容都属于 JIT 编译。
项目地址:https://www.trypyjion.com
Pyjion 的工作原理是通过 .NET EE 编译器将 Python 虚拟机操作码编译成汇编语言,基准测试表明:在实际工作中,Pyjion 比常规 Python 快两到三倍,部分优化允许加速10倍,常规算术的速度可以快一个数量级。
Pyjion 包含一个中间件层,允许 WSGI 应用程序在 Pyjion 下运行,因此像 web 应用这种长时间运行的应用程序非常适合 JIT 加速。
目前,有一些 Python 特性还不能在 Pyjion 中实现,比如 block 和 async/await,不过这些特性都已经在 Pyjion 的路线图中。
由于各种各样的原因,让 Python 变得更快非常困难。大多数提高 Python 速度的方法仍然依赖于 Python C API 来实现兼容性,性能也会受到限制。
Pyjion 也不例外,它仍然依赖 Python C API,但 Pyjion 的优化计划(例如,优化对数组类型的访问)表明,它的开发人员已经在思考如何处理这些问题。
Pyjion 1.0 依赖项:
CPython 3.10 :https://www.python.org/downloads/release/python-3100 .NET 6 :https://dotnet.microsoft.com/download/dotnet/6.0