V8の多段階コンパイル戦略 (2025年調べ)
V8のJITコンパイラは、コードの使用頻度や内容に応じて、最適化の深さが異なる3つのコンパイラを使い分ける 起動速度と最大性能を両立できる
まずバイトコードに変換して実行し、コードの実行情報を収集する
あまり最適化しないコンパイラ
高速に起動する
Sparkplugよりも最適化したコードを、TurboFanよりも高速に生成するコンパイラ
高度な最適化を行うコンパイラ
時間はかかるが、最高のパフォーマンスを発揮するコードを生成する
降格もあるらしい
TurboFanでコンパイルして実行してみたけど、やっぱりSparkplugにする、等
V8はまずIgnitionの作ったプロファイルに基づいて投機的に最適化してみるが、やっぱり実行時に変化する値があったりして、最適化できない事もある為