【问题标题】:How to view memory allocation stacktrace in Java VisualVM如何在 Java VisualVM 中查看内存分配堆栈跟踪
【发布时间】:2012-08-14 14:16:46
【问题描述】:

本文介绍如何在 Java VisualVM 中查看内存分配堆栈跟踪:http://rejeev.blogspot.de/2009/04/analyzing-memory-leak-in-java.html

简而言之,在 Java VisualVM 选项中定义一个自定义预设并选中内存设置选项卡中的“记录分配堆栈跟踪”复选框

现在,当我选择该自定义预设并开始内存分析时,我仍然无法查看内存分配堆栈跟踪。没有文章中描述的右键单击项目操作“拍摄快照并显示分配堆栈跟踪”,也没有类似的操作。我正在使用 VisualVM 1.7。

如何查看这些分配堆栈跟踪?

【问题讨论】:

  • 您在哪里寻找右键单击操作“拍摄快照并显示分配堆栈跟踪”?您是否在实时结果表中选择了特定课程?
  • 检查您的 JDK 和 JVM 是否兼容(例如,它们都是 32 位或都是 64 位)。

标签: java memory-leaks visualvm


【解决方案1】:

如果您看不到此选项,请转到 Profiler -> 激活“设置”复选框并在 Profiler 未激活时激活“记录分配堆栈跟踪”。

【讨论】:

  • 另外,在profiler运行的时候,需要点击snapshot按钮,才可以右键查看分配栈轨迹。
【解决方案2】:

Sampler 选项卡中启用 内存 分析,然后按 Heap Dump 按钮。

【讨论】:

  • 这是不同的——堆转储不会显示分配堆栈跟踪。此外 - 要获得堆转储,您不需要在“采样器”选项卡中使用“内存”分析。您可以从“监控”选项卡或受监控应用程序的上下文菜单中获取堆转储。
  • 同意这是对另一个问题的回答,尽管它是一种有用的方法。 Eclipse Memory Analyzer 对于分析堆转储确实很有帮助,但带有分配跟踪的 VisualVM 快照在独立时确实很有帮助。
  • 请原谅投反对票:这是意外(我一定是在尝试转到其他页面时点击了它)! SOF 有一条下意识的规则,即 5 分钟后您的投票将被锁定。抱歉!
猜你喜欢
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多