我用下面的線來獲得內存使用與Java獲得免費的存儲信息:如何從Java
Free_Memory=Run_Time.freeMemory()/1048576; // 1024 x 1024 = 1K x 1K = 1Meg
Total_Memory=Run_Time.totalMemory()/1048576; // 992 Total on a 4 GB PC
我得到的Free_Memory:900,但它的路要走,當Free_Memory下降到大約600,我的程序耗盡內存併產生堆溢出消息。所以我看了一下=> Windows任務管理器:性能:物理內存:自由,它降低到1,2或0,這更準確地反映了我的內存情況,根據它,我的總內存是:4089,這是正確的,而Java的Total_Memory = 992是不正確的。
所以,我現在的問題是:在我的Java程序中如何獲取反映在Windows任務管理器中的內存使用數字:性能:物理內存?我需要依靠這些數字。
這些數字不是「不正確的」,他們只是不報告你認爲他們正在報告。 – 2009-05-01 19:12:53
然後幫助他了解他們報告的內容。像這樣的評論太沒用了。 Runtime.freeMemory報告可用於Java VM的內存量,而不是系統本身。 – Chris 2009-05-01 19:16:41
對不起,克里斯範恩。我已經發布了一個答案並將其刪除,然後我認爲至少部分答案可能會有所幫助,因此我發佈了評論。但是當freeMemory()仍然報告600 MB空閒時,我不確定他爲什麼耗盡內存。 – 2009-05-01 19:22:37