【问题标题】:How to pin point a memory leak in a heap dump using jhat/jvisualvm tool?如何使用 jhat/jvisualvm 工具确定堆转储中的内存泄漏?
【发布时间】:2011-04-26 14:33:30
【问题描述】:

如何使用 jhat/jvisualvm 工具查明堆转储中的内存泄漏?

在“OutOfMemoryError:Java Heap Space error”期间,我使用 jmap 生成了我们的应用程序的堆转储。我使用 jhat 分析转储,但信息太大,我找不到发生内存泄漏的位置。请帮助我找出导致内存泄漏的对象。

【问题讨论】:

    标签: java memory-leaks out-of-memory heap-memory


    【解决方案1】:

    Visual VM 会显示 perm gen 已满,这意味着 OOM 错误。

    当您获得heap dump 时,您将能够看到具有最多实例的对象。这应该会给你一个关于罪魁祸首的线索。

    【讨论】:

    • 除了 perm gen 被填满之外,您还可以获得 OOME。如果使用分代 GC,很可能是老年代被填满。但如果垃圾收集时间过长,等等。
    • 我举了一个例子。关键是 Visual VM 将帮助识别所有这些。
    猜你喜欢
    • 2021-11-06
    • 2017-06-18
    • 1970-01-01
    • 2011-08-24
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    相关资源
    最近更新 更多