jvm性能分析学习过程

1.安装eclipse 内存分析工具:eclipse memory analyzer


2.eclipse memory analyzer学习了解
学会使用eclipse Memory Analyzer --MAT(推荐-很详细)

3.初次试炼

public class TestJavaHeap_1th  extends TestCase{
    static class OOMObject {

    }

    public static void main(String args[]){
        List<OOMObject> list = new ArrayList<OOMObject>();
        while (true) {
            list.add(new OOMObject());
        }
    }
}

<b>eclipse里操作方法</b>
使用eclipse测试:右键当前文件-> debug as-> debug configurations->选择Arguments标签页->在VM arguments里填入 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

如下图:

eclipse里操作方法

运行结果:

java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid91424.hprof ...
Heap dump file created [27639817 bytes in 0.172 secs]

以上操作说明:堆的最小值-Xms和最大值-Xmx设置一样,限制了堆自动扩展通过参数-XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出异常时Dump出当前内存堆转储快照以便事后进行分析

分析:使用内存映像分析工具(eclipse memory analyzer)对dump出来的堆转储快照进行分析,分清楚内存中的对象是否有必要,是内存泄露(memory leak),还是内存溢出(memory overflow),不会用MAT的请参考2里面文章对这个插件的介绍,很详细!

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

相关阅读更多精彩内容

  • 分析和理解应用的内存使用情况是开发过程中一项不小的挑战。一个微小的逻辑错误可能会导致监听器没法被释放回收,最终导致...
    Rave_Tian阅读 10,844评论 0 15
  • Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频...
    Rick617阅读 7,669评论 1 9
  • MAT简介 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、...
    This4U阅读 1,220评论 0 5
  • 7月14日 周五 还剩10天 早饭:煎饼x2,南瓜粥 1
    hanyu007阅读 239评论 0 0
  • One day a woman looked into a mirror and asked:" mirror m...
    goodirene阅读 230评论 0 1

友情链接更多精彩内容