サーバークラスマシンの検出

J2SE 5.0 より、起動するアプリケーションがサーバークラスマシン上で実行されているかどうかを起動ツールで検出できるようになりました。 サーバークラスマシン上で実行されていれば、Java HotSpot Client Virtual Machine (クライアント VM) ではなく、Java HotSpot Server Virtual Machine (サーバー VM) が使用されます。これで、実行しているアプリケーションを反映するように VM が設定されていなくても、パフォーマンスを向上させられます。一般に、クライアント VM よりもサーバー VM の起動が低速ですが、徐々に速く動作するようになります。


Note:Java SE 6 の場合、「サーバークラスマシン」とは、少なくとも 2つの CPU と、最少でも 2GB の物理メモリーを備えているマシンを指します。

Java SE 6 では、Solaris または Linux を実行している i586 または Sparc 32 ビットマシン上でアプリケーションを起動するときに、-server-client のどちらも指定されていない場合に、サーバークラスの検出が行われます。以下の表からも分かるように、i586 Microsoft Windows プラットフォームではデフォルトでクライアント VM を使用します。Sun がサポートしている残りのプラットフォームでは、サーバー VM だけを使用します。

プラットフォーム
デフォルト VM
アーキテクチャー OS
クライアント VM
サーバークラスの場合はサーバー VM、
そうでない場合はクライアント VM
サーバー VM
SPARC 32 ビット Solaris
 
0
 
i586 Solaris
 
0
 
Linux
 
0
 
Microsoft Windows
0
 
 
SPARC 64 ビット Solaris
 
0
AMD64 Solaris
 
0
Linux
 
0
Microsoft Windows
 
0
凡例:  X = デフォルト VM      — = このプラットフォームで提供されていないクライアント VM

コマンド行オプションを使用するアプリケーションの起動については、Solaris および Linux または Microsoft Windows 用の java ツールのドキュメントを参照してください。