JavaTM 仮想マシン |
ドキュメントの目次 |
Java 2 SDK Standard Edition には、1 つまたは複数の Java 仮想マシン (VM) 実装が組み込まれています。
通常、クライアントアプリケーション用に使用されるプラットフォームでは、SDK は Java HotSpot Client VM (クライアント VM) と呼ばれる VM 実装に付属しています。クライアント VM は起動時間を短縮し、メモリサイズを縮小するように調整されています。クライアント VM は、アプリケーションの起動時に、
-client
コマンド行オプションを使って呼び出します。
すべてのプラットフォームで、SDK は Java HotSpot Server VM (サーバ VM) と呼ばれる Java 仮想マシン (VM) 実装に付属しています。サーバ VM はプログラム実行速度が最大になるように設計されています。サーバ VM は、アプリケーションの起動時に、
-server
コマンド行オプションを使って呼び出します。
どちらの VM 実装にも共通する Java HotSpot テクノロジの機能を次に示します。
- 「適応型コンパイラ」 - アプリケーションは標準のインタプリタで起動しますが、実行時にはコードを解析してパフォーマンスのボトルネック、つまり「ホットスポット」を検出します。Java HotSpot VM は、パフォーマンスを向上させるため、コードのこのようなパフォーマンス-クリティカルな部分をコンパイルしますが、ほとんど使われないコード (プログラムの大部分) を不必要にコンパイルすることはありません。また、Java HotSpot VM は、適応型コンパイラを使って、インライン化など、コンパイルしたコードを最適化するための最善の方法を瞬時に判断します。コンパイラが実行時解析を行うので、最大のパフォーマンスを生み出す最適化処理を推測で判断しなくて済みます。
- 「高速メモリ割り当て」と「ガベージコレクション」 - Java HotSpot テクノロジでは、オブジェクトに対して高速でメモリの割り当てが行われます。また、高速で効率的な最先端のガベージコレクタが備わっています。
- 「スレッド同期」 - Java プログラミング言語は、プログラム実行の複数の並列パス (「スレッド」と呼ばれる) の使用を考慮に入れています。Java HotSpot テクノロジは、スレッド処理機能を実現しています。この機能は、大規模なメモリ共有型のマルチプロセッササーバでの使用を容易にスケーリングできるよう設計されました。
次に Java HotSpot VM の新機能を示します。J2SE 5.0 での拡張
J2SE 1.4.x での拡張
Java HotSpot VM の操作特徴の 1 つは、コマンド行フラグを使用して制御できるということです。Java HotSpot VM でサポートされているコマンド行オプションについては、Java アプリケーション起動ツールの参照ページに説明されています (Microsoft Windows | Solaris Operating Environment | Linux)。現在の VM 実装では認識されていても、将来の、または Sun 以外の実装で認識されるとは限らない非標準オプションについては、Java HotSpot VM Options のWeb ページで説明されています。
Sun Microsystems, Inc. の Web サイトでは次のドキュメントも利用できます。
Copyright © 2002-2004 Sun Microsystems, Inc.All Rights Reserved. |