專案包含 Python 模組呼叫 C++ 模組,需在不犧牲 C 擴展相容性前提下,實現 Python 端 2 倍效能提升。PyPy 雖快 5-6 倍,但 C 擴展支援弱,不適用。
犧牲部分 JIT 效能換取 C 擴展支援,工程量大,需深入理解 PyPy 內部機制(如 cpyext),風險較高。
CPython 3.11+ 已引入專用適應性解釋器,若專案能升級版本並配合型別標註,可能獲得 20-40% 提升;要達 2 倍通常仍需外部 JIT(如 PyPy、GraalPython)或將熱點重寫為 C/Cython/Rust。
最務實:用 cProfile 找出熱點函式,以 Cython 或 Rust (pyo3) 重寫並編譯為擴展模組,保持 Python 呼叫介面不變,通常能獲數倍加速。
優先嘗試 Cython 重寫核心迴圈,其次評估升級 Python 3.11+ 並開啟專用適應性解釋器。若架構允許,引入 PyPy 並逐步修正 C 擴展相容問題亦為長期選項。