堆转储文件分析

生成转储文件:
  • 使用 -XX:+HeapDumpOnOutOfMemoryError 参数
/**
 * -Xms10M
 * -Xmx10M
 * -XX:+HeapDumpOnOutOfMemoryError
 */
public class HeapOOM {
    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<>();
        while (true) {
            list.add(new OOMObject());
        }
    }

    static class OOMObject {

    }
}

结果:


image.png
分析:
  • 使用 jhat打开
jhat java_pid10652.hprof
image.png

在浏览器中打开:http://localhost:7000/

image.png

主要关心的是:show instance counts for all classesshow heap histogram
如果需要更详细的查询,可以通过 Execute Object Query Language(OQL),具体的 OQL 语法和使用请 google

  • show instance counts for all classes


    image.png
  • show heap histogram


    image.png
  • 使用 jvisualvm
    打开堆转储快照文件


    image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容