0

以下のオラクルのドキュメントを参照しています。

http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/underst_jit.html#wp1080014

「1. JRockit JVM による JIT コンパイルの実行」セクションで、JIT JVM は起動時間が長く、実行時間は短いこと、および JIT を使用しない JVM の場合はその逆であることが述べられています。

私の知る限り、JITはプログラムの実行に従ってコードをコンパイルするため、コンパイルが高速になるため、混乱しています。また、コードが最適化されるため、実行時間も高速になります。

彼らはこの点で何を意味したいのでしょうか? 私はそれを正しく理解していません。

4

1 に答える 1

5

基本的に、JITコンパイルには時間がかかると彼らが言っていることです。HotSpot は実際にはコードを 2 回コンパイルします。最初は最適化されず、次に頻繁に使用される部分の最適化が行われます。

したがって、プログラムが起動すると、VM の種類に応じて、最初にバイトコードをインタープリター モードで実行するか、コンパイルを待ってコンパイル済みバージョンに切り替えます。次に、コードが頻繁に使用される場合は、さらに最適化して再度コンパイルします。すべてリソースと時間がかかるため、起動は遅くなりますが、プログラムがウォームアップされると、高速に実行されます。

JIT を使用しないインタープリター モードでは、VM はコードの解釈をすぐに開始するだけなので、開始速度は速くなりますが、パフォーマンスは大幅に低下します。

于 2013-02-16T07:32:42.260 に答える