著者は、以前のテストで使った3つの Python ベンチマークを、Python 3.14 と Python 3.15 の両方で再実行しました。各バージョンで JIT コンパイラを有効にした場合と無効にした場合の両方を測定しています。前回のテストでは、3.14 の JIT によりマンデルブロ集合の計算が約 25%、レーベンシュタイン距離の計算が 27% 高速化されましたが、ダイクストラ法によるグラフ探索には改善が見られませんでした。
Python 3.15 では JIT が大幅に再構築されています。3.14 の JIT は起こりやすいコードの経路を予測していましたが、3.15 では新しいトレーシングのフロントエンドを使い、プログラムが実際にたどった経路を記録します。オプティマイザにも基本的なレジスタ割り当て、より多くの定数伝播、参照カウント操作の削減が加わりました。x86-64 と AArch64 向けのコード生成も改善され、生成される機械語が使用するメモリは少なくなっています。
4 つの構成(3.14 と 3.15 のそれぞれで JIT を有効・無効にしたもの)をテストすると、3.15 のインタプリタの変更による効果と、その JIT による効果を切り分けられます。3.14 と 3.15 を直接比較すると誤解を招く可能性があるため、この分離は重要です。3.15 のインタプリタには JIT 以外の変更も含まれており、その中には公式の 64 ビット Windows ビルドで使われるインタプリタの変更も含まれます。
Python リリースチームによると、x86-64 Linux のベンチマークスイートでは標準インタプリタに比べて幾何平均で 7% から 8% の改善、AArch64 macOS では 11% から 12% の改善が報告されています。LLVM 21 が必要になるのはビルド時だけなので、公式バイナリを使うユーザーがそれを別途インストールする必要はありません。
著者の再実行結果からは、強化された JIT が同じ 3 つのワークロードにはより大きな効果をもたらすことがわかります。ただし、すべてのプログラムに効果があるわけではなく、特にオブジェクトの割り当てや他の場所で実装された操作の呼び出しに時間を費やすコードでは効果が限られます。
出典: Towards Data Science · 要約:HeadlinesBriefing