2020 年秋,CPython 核心開發(fā)者 Mark Shannon 提出了關(guān)于 Python 的幾個性能改進,這個提議被稱為 “香農(nóng)計劃” (Shannon Plan)。
Shannon 隨后創(chuàng)建了 Faster Cpython 項目,他希望在 4 年的時間里,通過多個版本的更新將 Python 的速度提升 5 倍。
不久之后微軟正式加入該計劃,該公司支持包括 Mark Shannon、Guido van Rossum 在內(nèi)的開發(fā)人員,致力于「Faster CPython」項目的研究。
近日,Mark Shannon 和 Michael Droettboom介紹了面向 Python 3.13 的計劃。
他們提出了三個可并行推進的工作:
推出 Tier 2 優(yōu)化器
從 Python 代碼中啟用子解釋器 (PEP 554)
優(yōu)化內(nèi)存管理
Tier 2 優(yōu)化器的目標(biāo)是將花在解釋器上的時間減少至少 50%,其工作計劃大致如下:
讓 Tier 2 解釋器運轉(zhuǎn)起來
生成 superblocks
實現(xiàn)基本的 superblock 管理功能
至于從 Python 代碼中啟用子解釋器,這項工作建立在 Python 3.12 中 per-interpreter GIL 的基礎(chǔ)上,方便 Python 程序員利用 Python 代碼子解釋器中更好的并行性(無需編寫 C 擴展)。
目前已有針對這項工作的草案:PEP 554。首先需要更新并推動早日獲得批準(zhǔn),以便在必要時改變方向。
最后,關(guān)于優(yōu)化內(nèi)存管理方面。性能分析數(shù)據(jù)顯示,內(nèi)存管理和循環(huán) GC 花費了相當(dāng)多的時間。目前的計劃是:
通過改進數(shù)據(jù)結(jié)構(gòu)來減少分配
花費更少的時間進行循環(huán) GC
至于官方 JIT,Shannon 曾表示實現(xiàn) JIT 的第一步是實現(xiàn)一個跟蹤解釋器,但由于需要兼顧其他工作,引入 JIT 編譯器的工作還有一段路要走,“最早可能要到 3.13 才能到達(dá)”。(其實 Shannon 一直對 CPython 是否真的需要引入 JIT 持懷疑態(tài)度)
有開發(fā)者“銳評”了該團隊與另一個項目的內(nèi)部斗爭 ——完全移除 CPython 解釋器的 GIL(全局解釋器鎖)。
他認(rèn)為 Faster Python 團隊在這場斗爭中在“政治”上處于更好的位置。
審核編輯:劉清
-
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84789
原文標(biāo)題:“讓Python快5倍”最新計劃:優(yōu)化解釋器和內(nèi)存管理
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論