次のコードを使用して、自分のプログラムのメモリ使用量を監視しようとすると
public static String heapMemUsage()
{
long used = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();
long max = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax();
return ""+used+" of "+max+" ("+ used/(double)max*100.0 + "%)";
}
17 588 616
jvisualvm (私のプログラムと jvisualvm) で見た結果とは少し異なる結果が得られまし18 639 640
た。大したことではないことはわかっていますが、考えさせられました。
この事実について何か説明はありますか?
可能であればコード化されたバージョンを使用したいのですが、その結果が何らかの形でゆがんでいて、jvisualvm がより信頼できる場合は、代わりに jvisualvm を使用する必要があります。
ありがとう