トレーシング実行時コンパイル
プロファイリングの目的はホットループを特定することである。よく使われる方法は、すべてのループについて繰り返し回数を数えることである。この数がある特定のしきい値を超えた場合、そのループはホットループとみなされ、トレーシングモードが有効化される。
実行時コンパイルのアイデアは1960年代まで遡るが、トレーシングJITが注目されるようになったのは最近である。今日あるようなトレーシングJITのアイデアが最初に述べられたのは1970年である。 実行時にインタプリタ実行した際に使われた動作を単純に記録したものからコンパイル済みコードを派生させられることが示された。
最初のトレーシングの実装はDynamoである。Dynamoは「プロセッサ上で実行される機械語命令列を透過的に性能向上させることができる動的最適化システムを備えたソフトウェア」である。 実行されるネイティブ命令列を監視して「ホット」命令列を見つけた後、この命令列を最適化して実行した。
Dynamoは後にDynamoRIOに拡張された。DynamoRIO上には、トレーシングと部分評価が可能なインタプリタ構築基盤があり、これはプログラム言語のインタプリタ実装のオーバーヘッドを動的に除去するものである。
2006年にHotpathVMという最初の高級言語用トレーシングJITコンパイラが開発された。 この仮想マシンは頻繁に実行されるバイトコード命令列を特定しトレースしマシンコードにコンパイルすることができた。