次のような main メソッドを含む Main クラスを作成します。
public class Main {
public static void main(String[] _args) {
System.out.println("free:" + Runtime.getRuntime().freeMemory()
+ ". max:" + Runtime.getRuntime().maxMemory());
}
}
次に、-Xms2m と -Xmx2m を指定してクラスを実行します。出力は次のようになります。
free:2984840. max:7471104
次に、私の質問は、1 メガバイトが 1048576 バイトの場合、表示される空きメモリは -Xms で設定された 2 メガバイトではありません。-Xms オプションを 3m に増やすと、メガバイトの追加が無料であることが示されます。誰でも何が起こっているのか説明できます..?
-Xmx オプションを使用すると別のケースが発生します。オプションを 3m、4m、および 5m に増やすと、最大値は 7471104 を示し続けます。これは約 71.44m です。この 2 つのオプションがどのように機能するのか、よくわかりません。
これは、-Xms3m と -Xmx6m を設定したときに出力されるものです
free:4033416. max:7471104
誰でも助けることができます.?
ありがとうございました :)
注: 私は Win7 x64 と Java 1.6 update 35 で作業しています。