Python 3.14 已經登場,效能到底有多快? (★ 84 分)
Miguel Grinberg 在 Python 3.14 正式釋出後,重跑先前為「Python 真有那麼慢嗎?」所設計的基準測試,評比範圍涵蓋 CPython 3.9 至 3.14、PyPy 3.11、Node.js 24、Rust 1.90 四種執行環境,以及標準、Just-In-Time (JIT,即時編譯) 與 free-threading (FT,無鎖直譯器) 三種 Python 直譯器,並在 Linux 與 macOS 機器上,透過純 Python 實作的遞迴 Fibonacci (fibo.py) 與迴圈 Bubble Sort (bubble.py) 腳本,以單執行緒與四執行緒模式重複三次取平均,全面比較純 Python 代碼在各版本的執行效能。作者強調此基準僅適用於純 Python 程式,實際應用往往混用 C、C++ 或 Rust 原生函式庫,其效能走向未必相同。
測試結果顯示 CPython 3.14 相較於 3.13 平均快了約 27%,並且在所有 CPython 版本中表現最優;自 3.11 開始,Python 於純 Python 運算的速度已從「非常慢」跨入「不那麼慢」的階段。JIT 直譯器在此兩個測試腳本上並未帶來顯著加速,作者推測其即時編譯器尚未成熟或不善處理遞迴重度高的函式。而 FT 直譯器在單執行緒下比標準模式慢約 9%,但在多執行緒、CPU 密集型的 Fibonacci 與 Bubble Sort 測試中分別獲得約 3.1 倍與 2.0 倍的性能提升,充分驗證移除全域直譯器鎖 (Global Interpreter Lock, GIL) 可加速多執行緒運算。額外比較中,PyPy 在純 Python 代碼上仍遠超 CPython,雖稍遜於 Rust,但對比標準 CPython 有數倍以上優勢。
結論整理為:若可升級,應優先採用 CPython 3.14,其次至少使用 3.11 版以上;對於 CPU 密集、需多執行緒的場景,可嘗試 free-threading 直譯器;目前的 JIT 版對於此類純 Python 換算腳本效果有限;而 PyPy 在純 Python 執行上依舊表現驚艷。作者並提醒,真實世界應用常仰賴 C/C++ 或 Rust 原生函式庫,這類測試結果僅供參考,而非 Python 整體效能的最終定論。
Hacker News 社群對此測試的回應分歧:有人認為 Python 的優勢在於生態系與開發速度,並非追求與靜態編譯語言相當的原生性能;在多數 I/O 綁定的應用中,程式速度對用戶體驗影響有限;另有開發者指出,Python 在商業專案中常因缺乏型別註記而維護困難,與性能關注相比,更應重視程式品質。部分討論也提到 PyPy 因為對 CPython C API 相容性不足,以及社群支援滯後,導致普及率偏低;有人認為持續優化 Python 性能儘管值得鼓勵,但若要大幅提高,最終仍需仰賴 JIT 或轉用靜態編譯語言,否則難以突破目前的性能天花板。社群普遍認為,追求更高效能應在不犧牲 Python 動態特性與易用性的前提下進行,且當性能成為瓶頸時,混用 C/C++ 或 Rust 原生擴充才是更實際的做法。
👥 86 則討論、評論 💬
https://news.ycombinator.com/item?id=45524702