メモリの測定

今作っているアプリでメモリリークが発生しているっぽい。

とりあえず、プロファイラーとかを使う前に、ヒープサイズをログに出すとか簡単な方法であたりを付けた方が、いいといわれたので、メモリを出す方法を調査した。

long total = Runtime.getRuntime().totalMemory();
long free = Runtime.getRuntime().freeMemory();
long used = total - free;

これがオーソドックスな方法。

んで次が、かっこいい方法(つまり、できることはあまり変わらない。)

MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
MemoryUsage heapUsage = mbean.getHeapMemoryUsage();

long init = heapUsage.getInit();
long used = heapUsage.getUsed();
long committed = heapUsage.getCommitted();
long max = heapUsage.getMax();