Loading article…
トレースツリーは、プログラミング コードのランタイム コンパイルで使用されるデータ構造です。トレース ツリーは、ジャストインタイム コンパイルのトレースに使用されます。ジャストインタイム コンパイルでは、トレースはコード実行中に使用され、コンパイル前にホット スポットを探します。これらのホット スポットに再び入ると、代わりにコンパイルされたコードが実行されます。実行された各ステートメントは、他の関数呼び出し内も含めてトレースされ、実行パス全体がコンパイルされます。これは、個々の関数をコンパイルする場合とは異なります。より多くの情報が得られるため、関数呼び出しのオーバーヘッドの一部が削除されるなど、コンパイラの最適化が向上します。コンパイルされたコードがコンパイル コンテキスト外のコードを呼び出すたびに、インタープリターが呼び出されて続行されます。
参考文献
- Bala, Vasanth; Duesterwald, Evelyn; Banerjia, Sanjeev (1999 年 6 月)、「Transparent Dynamic Optimization: The Design and Implementation of Dynamo」 、 2020 年 12 月 18 日取得
- Gal, Andreas ; Franz, Michael (2006 年 11 月)、Incremental Dynamic Code Generation with Trace Trees (PDF)、CiteSeerX 10.1.1.113.557、S2CID 9352256 、 2020 年 12 月 18 日取得
- Gal, Andreas ; Bebenita, Michael; Chang, Mason; Franz, Michael (2007 年 10 月)、「コンパイル「パイプライン」を明示的にする: トレース ツリー シリアル化を使用した動的コンパイル」、CiteSeerX 10.1.1.85.2412、S2CID 14848180
- ダブル、クリス(2008年2月)、タマリントレースのクイック入門、2020年12月18日取得
- チャン、メイソン(2009年1月12日)、拡張基本ブロックとトレースの違い、2020年1月29日にオリジナルからアーカイブ
- Bolz, Carl Friedrich (2009 年 3 月 2 日)、PyPy ブログ: インタープリターへのトレース JIT の適用、 2020 年 12 月 18 日取得
