簡體   English   中英

Java heapdump分析查找實例化對象的源

[英]Java heapdump analysis find source for the instantiated objects

我正在使用jvisualvm分析堆轉儲。 從報告中我可以看到類,實例數和大小。

我想知道的是 - 這些對象的源(實例化了這個類)。 對於給定的對象,如果我能夠知道所有源類和每個類創建的實例數,我想可以很容易地識別出錯誤的候選者。

這有可能嗎? 如果是這樣,是否有比其他工具更好的工具來提供此類信息?

YourKit按大小和數量提供分配跟蹤。 您可以搜索創建的特定類並查找熱點。 評估版是免費的。 ;)

嘗試:

http://dr-brenschede.de/bheapsampler有一個易於理解的摘要或http://www.eclipse.org/mat進行更詳細的分析

這些工具可以滿足您的需求

你試過了嗎

jhat <yourdump>

假設您的作品具有以下形式:

私人Blah blah = new Blah();

對於每個實例,您都可以看到誰擁有對它的引用。 它還提供了強大的查詢語言[OQL]。 請參閱示例: jhat OQL AND在where子句中

但是如果你在其他地方創建它並簡單地將它傳遞給另一個類字段,你將無法從內存轉儲[使用任何工具]找到它,因為它只是一個快照。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM