1
我想計算我的Java應用程序的當前內存使用情況。但是,當我使用以下代碼時,與任務管理器中顯示的內容有很大差異。Java:計算內存使用率時的結果不準確
Runtime rt = Runtime.getRuntime();
long usedMemory = (rt.totalMemory() - rt.freeMemory())/1024;
根據任務管理器,當進程消耗3.000.000K時,該代碼將例如,計算2.015.203和1秒後1.712.296,實際上內存使用量增加了。
根據類似的問題,代碼應該沒問題,但爲什麼與任務管理器相比有如此巨大的差別?
JVisualVM報告是什麼 - 它與TaskManager有什麼不同? – 2012-04-26 23:46:59
你在任務管理器中查看了哪些列?有很多內存列。 – 2012-04-26 23:49:50
你爲什麼想知道?這不是一個輕浮的問題。 Java是一個高度複雜的託管環境,在幾乎所有情況下,您都不應該通過詢問操作系統來嘗試爲其制定流程管理決策。 – kittylyst 2012-04-27 03:12:18