jVisualVM的内存检查器中的“保留大小”是什么意思?

“摘要”选项卡上的Jvisualvm堆转储具有按保留的大小检查最大对象的功能。

保留的真正含义是什么?对象树的大小如何计算并显示在此处?

如果我在这里可以看到对象(10M)及其成员对象(5M),我应该如何计算堆影响。他们俩都占用了10M或15M的堆吗?

为什么我看不到我们的外观巨大的应用程序对象?

谢谢。

回答:

保留的真正含义是什么?

完整的gc之后,大小会是多少。例如,具有大量条目的WeakHashMap在GC之后可能为空。

对象树的大小如何计算并显示在此处?

JVM使用内部API确定这一点。

如果我在这里可以看到对象(10M)及其成员对象(5M),我应该如何计算堆影响。他们俩都占用了10M或15M的堆吗?

总计为10 MB。如果这是您最大的问题,除非您有一台只有100 MB的计算机,否则不必担心。(在这种情况下,我将对其进行升级)

为什么我看不到我们的外观巨大的应用程序对象?

也许它们的记忆力不如您想像的那样??例如,加载它们可能会很昂贵,但这并不会使其变得庞大。

顺便说一句:VisualVM是一个不错的免费内存探查器,但是它仅用于发现明显的问题。我会尝试像YourKit这样的商业分析器(您可以获取免费的评估许可证)进行比较。

以上是 jVisualVM的内存检查器中的“保留大小”是什么意思? 的全部内容, 来源链接: utcz.com/qa/426782.html

回到顶部