1
在我的Java應用程序中,我顯示程序的內存使用情況。不幸的是它是零星的,經常是錯誤的。我目前的代碼是Java程序的內存使用不準確
component.setText("Memory usage : "+((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())/1024/1024) + "mb");
有時,它返回正確的值(應該是大約10-20mb),有時它會返回非常奇怪的值。這與其他正在運行的Java程序(特別是Netbeans)相關,但在沒有其他運行時仍會顯示。那聲明有什麼問題?有沒有更好的方式來更準確地表示內存使用情況?
我不確定,但它是因爲垃圾收集器隨機運行並釋放內存。您可能希望在打印該程序之前運行垃圾回收器。 – Mike
但實際使用完全是這樣(20與500相比).GC不會是造成很大差異的原因。 –
使用VisuamVM連接並查看您的號碼是否與VisuamVM圖形匹配。您可以使用該工具執行一些快速分析。 – Jayan