CPythonのパフォーマンス向上:予期せぬ展開とLLVMの回帰に関する物語

2025-03-10

最近のCPythonの統合により、新しいバイトコードインタープリタの実装が導入され、当初は様々なベンチマークで10~15%という印象的なパフォーマンス向上を示しました。しかし、この向上は、LLVM 19の回帰を無意識のうちに回避した結果であることが判明しました。より適切なベースライン(GCCや調整済みのLLVM 19など)と比較すると、実際のパフォーマンス向上はわずか1~5%に減少します。数週間におよぶコンパイル、ベンチマークテスト、逆アセンブルの結果、LLVM 19におけるテールコールの複製に関する制限が、この回帰の原因であることが明らかになりました。テールコールインタープリタ自体は貴重な改善ですが、この出来事は、ベースラインの選択の難しさやコンパイラの最適化の複雑さの理解不足など、ベンチマーク、パフォーマンスエンジニアリング、ソフトウェアエンジニアリングにおける課題を浮き彫りにしています。

開発