【问题标题】:JProfiler: Help wanted for memory profiling - where do I find line numbers for where objects are being allocatedJProfiler:内存分析需要帮助 - 我在哪里可以找到分配对象的行号
【发布时间】:2020-05-06 18:08:52
【问题描述】:

newby 提醒:

我已经开始了为期 10 天的试用,但在弄清楚如何获得它以找到我要查找的内容时遇到了问题。我有一个相当复杂的单线程 Java 应用程序,我试图让它永不 GC。我汇集了我所有的对象。但是,我一定错过了一些事情。我想知道我在哪里释放返回堆的对象的最后一个引用。如果我找不到,至少知道内存是在哪里创建的,后来被 GC'd 就足够了。

这是我目前正在做的事情: 1. 点击 Live memory / Recorded Objects 2.点击记录,选择“垃圾收集对象,所有分配” 3.点击“运行GC”

所以现在出现了一堆东西。我希望我可以简单地双击,它会给我行号和类似的有趣的东西。类似于我运行 HPROF 时得到的结果。

  1. 我右键单击其中一项并选择“显示分配树以供选择”

仍然没有行号...虽然它确实给了我方法名称。如果该方法很大,那么找出创建内存的位置有点复杂。

另外,当我停止录制时,有没有办法清除录制对象视图中的所有内容,以便我可以重新开始新录制?

【问题讨论】:

    标签: jprofiler


    【解决方案1】:

    在分析设置中,您可以打开行号分辨率。

    另外,当我停止录制时,有没有办法清除录制对象视图中的所有内容,以便我可以重新开始新录制?

    当您再次开始录制时,之前的所有数据都会被清除。

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      1. 点击“Live memory - Recorded Objects”

      2. 选择您要查看的对象,然后右键单击“在 Heaper Walker 中显示选择”并选择“在当前堆转储中显示”

      3. 在新的 Heap Walker 窗口中选择要查看的对象,然后右键单击并选择“使用选定对象”并选择“分配”。然后就可以看到Objects的分配树了,通过阅读方法代码就可以找到你想要的行号了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-04
        • 2020-10-19
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多