理論的には、はい、JITはC++用に作成することができます。積極的にコードを最適化するために、基礎となるアーキテクチャのいくつかの利点を活用することができます。また、実行時にアプリケーションの読み込みに時間がかかるという欠点もあります。
勿論、そこには、ガベージコレクション、したがって、それが原因 オーバーヘッドもないだろうが、最適化の要因が存在することになります。 誰もがこれに取り組んでいます。これに論文やツールはありますか?どのように良い このアプローチになりますか?
ここでは大きな誤解があります。すべてのユーザー定義型に対してボード全体にGCを適用することは大きなオーバーヘッドです。最初に管理対象VMだけを使用しようとしているにもかかわらず、Android、iOS、Windows Mobileがすべて高性能アプリケーション向けにC/C++に移行した理由の1つです。
間接参照の追加レベルは、GCがコンパクトメモリのように自由であることを意味しますが、最適化されたC/C++プログラムは既に圧縮されたメモリを最初から使用しています。また、メモリが最初に断片化されていることも意味します。これは、C++が優れているような高性能アプリケーション(ビデオ処理、レイトレーシング、オーディオなどの大規模で連続したバッファを扱うもの)処理)。
また、すべてのUDTインスタンスを参照にするということは、すべてがヒープ上にあることを意味します。これは、もともと数クロックサイクルの操作を効果的に数百に変えています。
あなたの疑問にお答えするには、確かにC++コードをJITを使用して構築することができますが、静的な性質人々は一般的にC++コードを扱います。
[Googleが "Clang" + "JIT"](https://www.google.com/search?q=clang+jit)を検索すると、多くの情報が取り込まれます。 – ruakh
ChromeはChromeを更新するときに面白いことをします...プログラムは部分的に逆コンパイルされ、やや象徴的な形式が得られ、その形式へのパッチとして適用されてコンパイルされます。また、人々は実行時に自分自身を書き換える多態的なプログラムを書いていました(例えば、 'if'条件が決して偽でないことを検出すると、単に命令を' nop'で置き換えます)。したがって、これが実現可能ではない理由はありません。私はそれが事実であることを知っているので、「可能」とは言いません。 –
実際に最適化することはできますが、最適化はできません。 –