8

how do I find size of object in heap including all the objects it references from its fields?

In the Classes view under heap dump, the size only indicates the "shallow" size of object. I would like to know transitively what the size of the object is, basically the total size of objects that it references through fields.

thanks

4

2 回答 2

8

进行堆转储(右键单击左侧面板中的应用程序,然后单击“堆转储”)

在“类”选项卡中双击您选择的类,它将打开该类的“实例”选项卡。

最后单击选项卡右上角的“计算保留大小”。

于 2014-09-27T06:25:13.843 回答
0

您可以获得保留和浅尺寸。差异见那里https://www.yourkit.com/docs/java/help/sizes.jsp
*)要获得“保留大小”jvisulVM->“监视器”选项卡->“堆转储”选项卡->转到创建的堆转储->单击它“OQL控制台”->并在它的底部“查询编辑器”编写您的OQL sql,例如查找带有val“GHT”的字符串,查询将是select s from java.lang.String s where s.toString().equals("GHT")->单击“执行” ->并在查询结果中单击所需的参考->您可以看到有关您的实例的信息,您可以单击“计算保留大小”以获得您想要的
*) 要获得“浅”大小 jvisulVM->“监视器”选项卡->“堆转储”选项卡->转到创建的堆转储->单击它“OQL 控制台”-> 并在它的底部“查询编辑器”编写您的 OQL sql,例如查找带有 val“GHT”的字符串,查询将是select sizeof(s) from java.lang.String s where s.toString().equals("GHT")->单击“执行”->您将看到您的对象大小(以字节为单位)
更详细的信息,您可以在此处“浅”阅读 https://blogs.oracle.com/sundararajan/querying-java-heap-with-oql

于 2019-07-25T13:59:39.300 回答