美文网首页
jvm性能分析学习过程

jvm性能分析学习过程

作者: ddxueyu | 来源:发表于2017-06-17 14:56 被阅读89次

    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里面文章对这个插件的介绍,很详细!

    堆转储快照文件

    相关文章

      网友评论

          本文标题:jvm性能分析学习过程

          本文链接:https://www.haomeiwen.com/subject/bwzcfxtx.html