Runtime
JavaアプリケーションはすべてRuntimeクラスの単一のインスタンスを持ちます。このクラスは、アプリケーションとアプリケーション実行環境とのインタフェースになります。現在のRuntimeオブジェクトは、getRuntimeメソッドにより取得できます。
- public long totalMemory()
Java仮想マシンのメモリーの総容量を返します。ホストの環境によっては、このメソッドによって返される値が時間とともに変化する場合があります。
任意の指定された型のオブジェクトを格納するのに必要なメモリー容量は、実装によって異なります。
戻り値:
現在および将来のオブジェクトに利用可能な現在のメモリーの総容量(バイト単位)。 - public long maxMemory()
Java仮想マシンが使用を試みる最大メモリー容量を返します。固有の制限が存在しない場合、値Long.MAX_VALUEが返されます。
戻り値:
仮想マシンが使用を試みる最大メモリー容量(単位はバイト)
実装確認
サンプルコード
public class HeapTest {
public static void main(String[] args) {
long initm = Runtime.getRuntime().totalMemory()/1024/1024;
long maxm = Runtime.getRuntime().maxMemory()/1024/1024;
System.out.println("Runtime start memory:"+initm+"M");
System.out.println("Runtime max memory:"+maxm+"M");
System.out.println("System memory:"+initm*64/1024+"G");
System.out.println("System memory:"+maxm*4/1024+"G");
}
}
Runtime start memory:243M
Runtime max memory:3586M
System memory:15G
System memory:14G