Javaプロセスに割り当てられているメモリ情報を取得する

Runtimeクラスから取得できます。忘れていたので備忘録としてメモ。

ソースコード

	Runtime runtime = Runtime.getRuntime();
	long totalMemory = runtime.totalMemory();
	long maxMemory = runtime.maxMemory();
	long freeMemory = runtime.freeMemory();
	long usedMemory = totalMemory - freeMemory;
	double ratio = (double) ((double) usedMemory / (double) totalMemory);

	DecimalFormat memoryFormat = new DecimalFormat("#,###KB");
	DecimalFormat ratioFormat = new DecimalFormat("##.##%");

	System.out.println("Total:" + memoryFormat.format(totalMemory / 1024));
	System.out.println("Free :" + memoryFormat.format(freeMemory / 1024));
	System.out.println("Used :" + memoryFormat.format(usedMemory / 1024)
					+ "(" + ratioFormat.format(ratio) + ")");
	System.out.println("Max  :" + memoryFormat.format(maxMemory / 1024));

実行結果

Total:83,008KB
Free :81,621KB
Used :1,386KB(1.67%)
Max :126,912KB