JProfiler内存视图 - >对象大小

时间:2013-02-21 13:47:01

标签: java profile jprofiler

我的申请中有以下课程:

class A {
  String someString;
  Locale someLocale;

  Map<Integer, B> someMap = new HashMap<Integer, B>();

  fillMap() {
    // some logic to fill the map with instances of B
  }
}

class B {
  // lots of filled collections
}

我正在与JProfiler进行分析会话以识别一些内存问题。在内存视图选项卡上,使用聚合级别类,我有例如2000个A实例,总大小为156KB。

我的问题是这个尺码意味着什么?它只是A对象的引用大小,还是A的所有填充成员的大小(我特别想知道Map)?我想这只是A参考尺寸,但我想确保这一点。

1 个答案:

答案 0 :(得分:3)

动态内存视图不显示保留的大小,只显示浅的大小。

要查看保留的大小,请转到堆walker,双击该类以创建新的对象集。然后,单击标题中的“计算保留和深度”。

这可以获得整个类的保留大小,尽管单个实例的保留大小可能更有趣。为此,请转到“参考”视图或“最大对象”视图。