2
當試圖通過下面的代碼通過getMemoryMXBean()和jvisualvm獲得內存使用情況的差異?
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 + "%)";
}
監視我自己的程序的內存使用情況我有一個稍微不同的結果不是通過jvisualvm(17 588 616
在我的程序VS在jvisualvm 18 639 640
)看到。我知道這不是什麼大問題,但它確實讓我思考。
這個事實有什麼解釋嗎?
如果可能,我想使用編碼版本,但如果結果有某種偏斜,jvisualvm在某種程度上更可信,我將不得不堅持使用jvisualvm。
感謝
我想知道jvisualvm是否將堆和非堆內存使用情況加起來以獲得其編號。嘗試在你的應用中添加它們,看看你是否接近。 – 2013-02-24 20:11:00