Java仮想マシンのオプション


Mac OS XのJava仮想マシンは、標準的なHotSpot仮想マシンのオプションに加えて、多くの非標準的なオプション(-X -XX)をサポートしています.この章では、これらのオプションと注意すべき例外について説明します.
 
特に宣言しない限り、1つのオプションで指定されたbytes(バイト)はパラメータとして使用されます.また、kまたはmの2つのアルファベットで千バイトまたは兆バイトを指定することもできます(大文字と小文字の両方).例えば、以下のいくつかの形式は、41943014096 k、4096 K、4 m、および4 Mのバイト数を表す.
 
一般的なオプション-server
Mac OS Xには特別なサーバ仮想マシン(server VM)はありません.Javaをアクティブにするときは-serverオプションを使用できますが、これは別の仮想マシンを起動するのではなく、クライアント仮想マシン(client VM)を起動するのです.この仮想マシンはサーバの使用環境を最適化しています.これらのチューニングには、次のものが含まれます.
共有アーカイブの生成中に異なるクラスリストが使用され、このリストにはGUIクラスは含まれない(「Mac OS XのJava共有アーカイブ」部分参照).
Javaスタックのサイズを増やします.
Eden世代のメモリ領域のサイズを増やします.
スレッドのローカルEdenゴミ収集器(garbage collection)を開きます. -X
非標準VMオプションの簡単な説明を表示します.-Xbootclasspath:path
検索開始クラスの範囲として、ディレクトリとJARとZIPファイルのリストを指定します.リスト内の各項目間の区切り記号は、コロン(:)です.-Xfuture クラスファイルの厳格なフォーマットチェックを行います.このオプションはJavaにクラスファイルの規範を遵守するかどうかをより厳格に検査するように強制し、デフォルトの検査はJava 1.1に基づいている.xの基準.このオプションを使用して、コードをテストして、これらのコードが将来のJavaバージョンで動作することを確認する必要があります.これらの将来のバージョンでは、より厳しいクラスファイルフォーマットチェックが強制される可能性があります.-Xprof
実行プログラムの詳細な挙動解析データを標準出力に送信する.このオプションは、製品レベルのコードでは使用できません.-Xrs
および-XX:+ReduceSignalUsageのオプションは同じです.-XX:+ReduceSignalUsage
通常、Java応答SIGHUP ,SIGINT,およびSIGTERM信号.このオプションを指定すると、Javaはこれらの信号を無視し、特定の必要に応じてローカルコードでこれらの信号の処理関数を実装し、同時に
System.exit()では、関連するクローズルーチンが実装されます.-XX:ReservedCodeCacheSize=size in bytes
最大のコードキャッシュのサイズを設定します.デフォルトは32(32 M)です.-XX:-PrintJavaStackAtFatalState
デフォルトでは、ローカルコードがクラッシュすると、Javaはバックトラック情報を生成します.Javaのエラーレポートでクラッシュの情報を見た場合は、このオプションを閉じることができます.
Mac OS X専用オプション-Xdock:name=applicationName
Dockとメニューバーに表示されるアプリケーションの名前を設定します.このオプションが設定されていない場合、デフォルトではMac OS Xにマスタークラスのフルネームが表示されます.コマンドラインまたはJARファイルから起動したプログラムにこのオプションを設定するだけで、ダブルクリックできるアプリケーションパッケージはInfo.plistファイルに正しい表示名が読み込まれます.-XX:+UseFileLocking
このオプションはCarbonファイルのロック機能をアクティブにし、デフォルトではオフにします.Javaアプリケーションといくつかのファイルが相互作用し、これらのファイルがCarbonアプリケーションの影響を受けている場合は、このオプションを使用して、アプリケーションが他のプログラムにアクセスしているファイルを変更することを回避する必要があります.
ヒープのサイズ-Xmssize in bytes
Javaスタックの初期サイズを設定します.デフォルトサイズは2097152(2 MB)です.この値は1024バイト(1 KB)の倍数で、それより大きい必要があります.(-serverオプションは、デフォルトのサイズを32 Mに増やします.)-Xmnsize in bytes
Edenオブジェクトの初期Javaスタックのサイズを設定します.デフォルト値は640 Kです.(-serverオプションは、デフォルトのサイズを2 Mに増やします.)-Xmxsize in bytes
Javaスタックの最大サイズを設定します.デフォルト値は64 Mです.(-serverオプションは、デフォルトのサイズを128 Mに増やします.)最大ヒープサイズは2 GB近く(2048 MB)に達した.
 
注意:多くのゴミ収集器のオプションはスタックサイズの設定に依存します.ゴミ収集器のメモリスペースの使い方を微調整する前に、スタックのサイズが正しく設定されているか確認してください.
 
ごみ収集:メモリの使用メモリの使用-XX:MinHeapFreeRatio=percentage as a whole number
ごみ回収後のスタックで使用可能なメモリの最小パーセントを変更します.デフォルトは40です.ゴミ回収後、少なくとも40%のスタックメモリが解放されていない場合、システムはスタックのサイズを増加させます.-XX:MaxHeapFreeRatio=percentage as a whole number
ごみ回収後とスタックメモリの縮小前に使用可能なスタックメモリの最大パーセントを変更します.デフォルトは70です.これは、ゴミ回収後に70%以上のスタックメモリがある場合、システムがスタックのサイズを減らすことを意味します.-XX:NewSize=size in bytes
メモリが割り当てられているオブジェクトのEden世代のデフォルトのメモリサイズを設定します.デフォルト値は640 Kです.(-serverオプションは、デフォルトのサイズを2 Mに増やします.)-XX:MaxNewSize=size in bytes
初期オブジェクトスペースの上限を変更できます.新しいオブジェクトに必要なメモリはこのスペースから割り当てられます.このオプションのデフォルト値は640 Kです.(-serverオプションは、デフォルトのサイズを2 Mに増やします.)-XX:NewRatio=value
新しい空間の寸法スケールを変更します.このスケールのデフォルト値は8で、新しい空間の寸法が古い空間の1/8であることを意味します.-XX:SurvivorRatio=number
Edenオブジェクト空間と残存空間の寸法スケールを変更します.このスケールのデフォルト値は10です.これは、Edenオブジェクト空間の寸法が残存空間よりもsurvivorRatio+2倍大きいことを意味します.-XX:TargetSurvivorRatio=percentage
希望するスペース抽出後に使用する残存スペースの割合を設定します.デフォルトは50です.-XX:MaxPermSize=size in MB
長久代(permanent generation)のサイズで、デフォルト値は32(32 MB)です.
ごみ収集:一般設定-Xincgc
Mac OS Xではこのオプションはサポートされておらず、このトレーニング式のゴミ収集器はサポートされていません.-Xnoclassgc クラスのゴミ収集を無効にします.-XX:+UseConcMarkSweepGC
マルチプロセッサのコンピュータに有効なフラグとパージを同時に行うゴミ収集アクティビティをアクティブにします.-XX:+UseParallelGC パラレルゴミ収集アクティビティをアクティブにします.このオプションは、マルチプロセッサのコンピュータにのみ有効です.-XX:-DisableExplicitGC コード内のペアを無視
System.gc()の明示的な呼び出し.仮想マシンは、通常のメカニズムに従ってゴミ収集を行います.このオプションでは、コード内でゴミ収集を強制することはできません.-XX:+PrintTenuringDistribution 初期世代でメモリが割り当てられているオブジェクトがメモリ時間を消費する情報を印刷します.
コンパイル-Xint 解釈(interperated)モードでのみ仮想マシンを実行します.このオプションを使用すると、システムはバイトコードをコンパイルしません.-XX:CompileThreshold=value
コンパイル開始前にメソッド呼び出し(プログラムブランチ)の数を変更します.デフォルトは1000です.-XX:-InlineUnreachableCalls
デフォルトでは、仮想マシンは、コンパイラの最適化を容易にするために、可能なすべてのコードをメソッドインライン処理します.このオプションを設定すると、少ないコードがインラインメソッドでコンパイルされます.このように、通常は実行されないコード、例えば例外処理は、インラインコードとして処理されず、実行時にのみ解釈される.このオプションを設定すると、パフォーマンスが大幅に低下する可能性があります.-XX:+CITime
コンパイルしたコードにどれだけの時間がかかったかを表示します.-XX:+PrintCompilation Javaのメソッドがコンパイルされると、そのトレース情報が印刷されます.
Threading -XX:NewSizeThreadIncrease=size in KB
アクティブなスレッドごとに初期オブジェクトスペースがどのくらい増加するかを指定できます.このオプションは、スレッドの増加によって増加する割当率を調整するときに役立つ可能性があります.デフォルト値は16(16 kilobytes)です.-XX:ThreadStackSize=size in KB
スレッドスタックのサイズを変更します.デフォルトでは、スレッドスタックのサイズは、オペレーティングシステムで使用されるスタックのデフォルトのサイズです.-XX:+UseTLAB
スレッドのローカル割り当てバッファをアクティブにします.このバッファを使用すると、スレッド・タスクが煩雑なアプリケーションのメモリ割り当てがより拡張性が高くなり、メモリ割り当てのパフォーマンスが大幅に向上します.このオプションは、マルチプロセッサのコンピュータおよびMac OS Xサーバでデフォルトでオンになっています.
共有-XX:+PrintSharedSpace
共有冗長出力を開きます.-XX:-UseSharedSpaces
共有をオフにします.