歡迎存取 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正式版釋出,我會做一個新舊編譯器效率對比的測試。