4

私たちが使用している、起動プロパティの形式が正しくないレガシーソフトウェアを見つけたので、次の2つの等しくないxmxをプロパティとして受け取ります。

java -jar myapp.jar -Xmx128m -Xmx512m 

ランチャーのソースコードにアクセスできない(変更できない)ので、これらのパラメーターの重複の影響は何ですか?これをそのままにしておくことはできますか、それとも心配する必要がありますか?どちらが適用されますか?

使用されるJVMはJRE6アップデート18です。

4

2 に答える 2

6

一般に、ツールが重複を拒否しない場合に使用されるのは通常後者のオプションですが、ツールがそれを文書化しない限り、それを当てにすることはできません。

最善の策は、特定RuntimeのJVMで何が起こるかを、totalMemorymaxMemory:を介して確認することです。

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
于 2011-11-30T13:43:00.110 に答える
1

最後の設定を使用することを理解しています。

于 2011-11-30T13:43:29.940 に答える