當前位置: 妍妍網 > 碼農

Python JIT新版編譯器真是香~

2024-06-29碼農

歡迎存取 Python3分鐘 系列。 花3分鐘時間 ,學習或溫習一個Python知識點。

啥是JIT?

Python 3.13 引入 copy-and-patch JIT(Just-In-Time) 編譯器, JIT Python 發展史上的一個重大改變,旨在提高 Python 程式碼的執行速度。

JIT 編譯器的引入是 Python 效能最佳化的一大步,尤其是對於那些需要高效能計算的套用場景。

絕大多數的Java都以JIT方式提高其效能。

啥是Copy-and-patch

JIT 編譯器在 Python 程式碼第一次執行時,將程式碼編譯成機器語言,並在後 續執行時重用這些編譯後的程式碼

這意味著隨著程式的執行,效能會逐漸提高,因為更多的程式碼被編譯成機器語言。這與傳統的直譯器相比,每次執行程式碼時都需要解釋執行, JIT 編譯器 只在第一次執行時花費編譯時間

而新的JIT編譯器采用了 Copy-and-patch 的設計,其工作原理是將字節碼編譯成一組 「樣版」 ,然後在執行時使用正確的值進行拼接和修補。

copy-and-patch JIT 編譯器盡可能使用 LLVM 生態的工具,比如編譯器采用 Clang,編譯參數設為 -o3 以獲取最大的效能,二進制工具用 llvm-objdump llvm-readelf

Copy-and-Patch 技術的優點是開發者無需手寫組譯程式碼就可以生成高效的機器碼,同時在執行期產生組譯程式碼的方式是快速的。

這意味著普通 Python 使用者不需要在他們的 Python 執行時中執行復雜的 JIT 編譯器架構。

最後

此處埋個坑,等Python3.13正式版釋出,我會做一個新舊編譯器效率對比的測試。