2013-04-09 73 views
2

我正在使用jProfiler。我有一個類X的對象。這個類有許多String,Integer類和其他類類型的屬性。我想知道有多少內存是由類X的一個對象消耗計算Java中任何對象的總內存使用情況

當我使用jProfile找到內存使用情況,我只得到X類型我假設的對象的大小,JProfiler的不顯示其成員變量使用的內存。例如,類X的String屬性對String使用的總內存有貢獻。

我想弄清楚類X的總內存使用情況,包括其所有屬性對象使用的內存。任何關於如何使用jProfile或其他工具/代碼來實現的信息?

在此先感謝!

+1

看不出這是一個重複的問題,這是關於如何使用JProfiler來完成它,它完全有能力這樣做。在堆步行者中,使用所選對象創建一個對象集,然後單擊標題中的「計算保留和深度尺寸」。深度的大小是你正在尋找的。保留的大小直接顯示在引用視圖中,但它們只顯示如果要刪除此對象將釋放多少內存。 – 2013-04-09 20:25:35

回答

2

這是一個非常好的工具,可以顯示你的對象

http://www.eclipse.org/mat/

它不僅會告訴你它使用自己的內存所使用的內存總量,但多少內存由於保持活躍引用它。

+0

感謝您的回答。我試圖將它與Eclipse集成並獲取堆轉儲......但失敗。你能告訴我如何使用這個工具嗎?謝謝 – 2013-04-09 06:55:02

+0

這是一個獨立的工具。只需下載並自行運行即可。您不會將其作爲Eclipse的插件或插件運行。運行它並在其中打開頭文件轉儲文件 – EdH 2013-04-09 11:22:53

+0

我確定他們的doco比我放在這裏的任何東西都更徹底:http://wiki.eclipse.org/index.php/MemoryAnalyzer – EdH 2013-04-09 11:23:52