查看原文
其他

微软发布 Python 的 JIT 编译器:Pyjion

罗奇奇 Python猫 2022-04-12
出品 | 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

Python猫技术交流群开放啦!群里既有国内一二线大厂在职员工,也有国内外高校在读学生,既有十多年码龄的编程老鸟,也有中小学刚刚入门的新人,学习氛围良好!想入群的同学,请在公号内回复『交流群』,获取猫哥的微信(谢绝广告党,非诚勿扰!)~


还不过瘾?试试它们




Python 官方研讨会:彻底移除 GIL 真的可行么?

终于懂了:协程思想的起源与发展

如何提高 Python 装饰器的使用效率?

计算机科学界至今未解决的四大难题

Python 为什么不支持 switch 语句?

一份可以令 Python 变快的工具清单


如果你觉得本文有帮助请慷慨分享点赞,感谢啦

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存