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