現代のソフトウェアの世界には非常に多くのレイヤーが含まれているため、最適化は予想外の場所で行われることがあります。2000 年、HP Dynamo プロジェクトをご覧ください。これは、同じ PA-8000 プロセッサで実行される PA-8000 プロセッサ エミュレータですが、JIT テクノロジを使用しています。そして、エミュレーターで実行される実際のプログラムは、裸のプロセッサーで実行されるよりも高速に実行されます。
td; dr - タイトルがすべてを物語っています
HP Labs のプログラマーは、それが動作するのと同じプラットフォーム用に最適化 JIT コンパイラーを作成したらどうなるだろうと考えました。作業には数年かかりました。エミュレーターで変更されていないネイティブ バイナリを実行することは可能でした。そして、結果はやや予想外でした。
彼らはエミュレータで「ホット パス」を探し、コード実行フローを最適化しました。したがって、ジャンプ、関数の呼び出し、動的ライブラリ、およびプロセッサのキャッシュでの作業の最適化のコストが削減されました。パフォーマンス改善の結果は +22% に達し、テストの平均は +9% であることが判明しました。
この短いメモは、誰かが何か新しいことを学ぶことができるように書かれたものですが、20 年前の非常に技術的な詳細に入る意味はありません。
詳細に興味がある人は次のとおりです。
1.http
: //cseweb.ucsd.edu/classes/sp00/cse231/dynamopldi.pdf 2.https ://stackoverflow.com/questions/5641356/why-is-it-that-bytecode-might-run-faster -than-native-code / 5641664 # 5641664 3.https
: //en.wikipedia.org/wiki/Just-in-time_compilation