gpt4 book ai didi

java - 如何从堆转储中计算对象大小?

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:22 25 4
gpt4 key购买 nike

我有一个通过 Jmap 获取的对象堆转储。我还通过 Jhat 看到了转储。我需要计算对象的大小。我该怎么做?

在转储中我可以看到例如:

Class Name,                    total objects,          total size
com.test.app.CallRecord , 2194 , 446324

所以如果我计算 446324/2194 = 203。那么 203 字节就是 1 个 CallRecord 对象的大小。是这样吗?我在这里很困惑。这个尺寸是多少?它是否也包括引用文献的大小?

我很困惑。有人要我让他们知道 CallRecord 对象的大小。我应该告诉他们 203 字节吗?不知道对不对。

203 字节是否包含 CallRecord 对象下引用的大小?

如何计算?

最佳答案

这取决于总尺寸是尺寸还是保留尺寸。

  1. 浅尺寸

    对象的浅表大小是用于存储对象本身的内存量。不考虑引用的对象。

  2. 保留大小

    对象的保留大小是当对象被垃圾收集器收集时可以释放的内存量。

关于java - 如何从堆转储中计算对象大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12297299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com