19

ご存じのとおり、このjava -Xmxオプションは、Java プログラムが使用できる最大ヒープ領域を設定するために使用されます。しかし、Java プログラムが設定された値を読み取る方法はありますか? System.getMaximumHeapSpace()(存在しない)のようなもの。

4

1 に答える 1

27

Java 仮想マシンが使用しようとするメモリの最大量を返すとドキュメントに記載されている がありRuntime.maxMemoryますが、JVM の起動時に設定された最大ヒープ メモリであるかどうかは特定されていません。

テストとして、次のプログラムを作成しました。

class MaxMemory {
    public static void main(String[] args) {
        System.out.println(Runtime.getRuntime().maxMemory());
    }
}

実行結果は次のとおりでした。

C:\coobird\>java -Xmx64m MaxMemory
66650112

C:\coobird\>java -Xmx128m MaxMemory
133234688

これは、Windows で Java SE 6 バージョン 1.6.0_12 を使用しています。

値は 64 MB (67,108,864 バイト) と 128 MB (134,217,728 バイト) に近いですが、正確にはそうではありません。

于 2009-06-14T15:13:10.303 に答える