微軟發(fā)布 Python 的 JIT 編譯器:Pyjion

用于 Python 3.10 及以上版本的嵌入式 JIT 編譯器?Pyjion?已發(fā)布 1.0 版本。
Pyjion 擁有以下特性:
配置文件引導的 JIT 編譯器
原生 64 位浮點數(shù)和整數(shù)支持
小而快的編譯器
支持 Windows、macOS 和 Linux
支持 Intel 和 ARM CPU
內(nèi)置 IL 和 ASM 反匯編器
支持本機調(diào)試和分析工具
Pyjion 是由 Python 軟件基金會研究員和微軟研究員 Anthony Shaw ?合作開發(fā)的一種用于 Python 的即時 (JIT)?編譯系統(tǒng),它不是像 PyPy 那樣的獨立 runtime,而是在 CPython 3.10 下運行的可安裝庫。
安裝后,只需導入 Pyjion 庫并啟用,即可在程序中使用:導入后運行的所有內(nèi)容都屬于 JIT 編譯。
項目地址:https://www.trypyjion.com

Pyjion 的工作原理是通過 .NET EE 編譯器將 Python 虛擬機操作碼編譯成匯編語言,基準測試表明:在實際工作中,Pyjion 比常規(guī) Python 快兩到三倍,部分優(yōu)化允許加速10倍,常規(guī)算術(shù)的速度可以快一個數(shù)量級。
Pyjion 包含一個中間件層,允許 WSGI 應用程序在 Pyjion 下運行,因此像 web 應用這種長時間運行的應用程序非常適合 JIT 加速。
目前,有一些 Python 特性還不能在 Pyjion 中實現(xiàn),比如 block 和 async/await,不過這些特性都已經(jīng)在 Pyjion 的路線圖中。
由于各種各樣的原因,讓 Python 變得更快非常困難。大多數(shù)提高 Python 速度的方法仍然依賴于 Python C API 來實現(xiàn)兼容性,性能也會受到限制。
Pyjion 也不例外,它仍然依賴 Python C API,但 ?Pyjion 的優(yōu)化計劃(例如,優(yōu)化對數(shù)組類型的訪問)表明,它的開發(fā)人員已經(jīng)在思考如何處理這些問題。
Pyjion 1.0 依賴項:
CPython 3.10 :https://www.python.org/downloads/release/python-3100 .NET 6 :https://dotnet.microsoft.com/download/dotnet/6.0


