私たちが使用している、起動プロパティの形式が正しくないレガシーソフトウェアを見つけたので、次の2つの等しくないxmxをプロパティとして受け取ります。
java -jar myapp.jar -Xmx128m -Xmx512m
ランチャーのソースコードにアクセスできない(変更できない)ので、これらのパラメーターの重複の影響は何ですか?これをそのままにしておくことはできますか、それとも心配する必要がありますか?どちらが適用されますか?
使用されるJVMはJRE6アップデート18です。
一般に、ツールが重複を拒否しない場合に使用されるのは通常後者のオプションですが、ツールがそれを文書化しない限り、それを当てにすることはできません。
最善の策は、特定Runtime
のJVMで何が起こるかを、totalMemory
とmaxMemory
:を介して確認することです。
public class HeapSize {
public static final void main(String[] args) {
Runtime rt = Runtime.getRuntime();
System.out.println("Total currently: " + rt.totalMemory());
System.out.println("Max: " + rt.maxMemory());
System.exit(0);
}
}
私のJVM(LinuxではSun / Oracle 1.6.0_26 -b03)では、後者のオプションが有効になります。
$ java -Xmx16m HeapSize 現在の合計:16121856 最大:16121856 $ java -Xmx32m HeapSize 現在の合計:32178176 最大:32178176 $ java -Xmx16m -Xmx32m HeapSize 現在の合計:32178176 最大:32178176 $ java -Xmx16m -Xmx32m -Xmx128m HeapSize 現在の合計:59113472 最大:119341056
最後の設定を使用することを理解しています。