【问题标题】:jProfiler Live Memory All object viewjProfiler Live Memory All 对象视图
【发布时间】:2015-07-15 18:58:45
【问题描述】:

我创建了以下简单程序,只是为了在 java 中创建 String 列表时观察对象和内存信息。

导入 java.util.ArrayList; 导入 java.util.List;

public class Main {

    public static void main(String[] args) {

        List<String> strObj = new ArrayList<String>();

        for (int i = 0; i < 1000; i++) {
            strObj.add("abc");
        }
    }
}

但是 jProfiler 在 Live Memory 中向我显示以下信息 -> 我无法理解的所有对象视图。

创建了多少个 char[] 实例?我只创建了 1000 个 String 对象,大约 9000 个是怎么创建的?

请帮助我解释此分析器信息。

【问题讨论】:

    标签: object memory jprofiler


    【解决方案1】:

    动态内存视图无法回答这个问题。您必须转到堆步行器并选择所有char[] 实例。然后查看“累积传入引用”视图来分析实例是如何被引用的。

    您还可以在启动时使用适当的记录配置文件打开分配记录,然后您可以查看它们的分配位置。

    【讨论】:

    • 谢谢.. 是否可以反过来查看 - 直接查看在某个类的范围内创建的所有对象,例如在我的情况下主类?
    • 是的,这在动态视图中甚至是可能的,分配视图会显示该信息。
    • 您能告诉我一些细节吗?我对这个工具真的很陌生,不熟悉这些术语分配视图等。它让我有一段时间甚至可以搜索累积的传入引用;)
    • 尝试查看Live Memory->分配调用树,应该是不言自明的,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多