摘抄自小涛涛~~~:小涛涛JVM系列博客
一 模拟内存溢出:
1 代码如下:
2 IDEA配置JVM参数
配置内容:-XX:+HeapDumpOnOutOfMemoryError -Xms20m -Xmx20m
其中-XX:+HeapDumpOnOutOfMemoryError指的是在堆溢出时保存快照
其中-Xms20m -Xmx20m是设置JVM最大和最小堆内存都为20m。配置这里是因为我们要模拟内存溢出,若不把内存设置小点,程序运行后要等很久才可以看到内存溢出信息。
3 执行程序 观察内存溢出 查看内存快照文件
执行Main中的main方法,通过任务管理器观察内存情况,发现内存一直上涨,当涨到一定程度时候程序会抛出如下异常,即为内存溢出。
红框即为内存快照文件,快照文件保存在我们项目根目录下,进入项目根目录,可以看到下图所示内容。
二 内存监控方法
快照文件使用文本工具打开是乱码,需要使用内存分析工具进行查看分析。Jprofile 是一个内存监控分析的工具 使用Jprofile打开内存快照文件
具体使用参考以上两个链接,我第一次使用~,就不乱讲了。具体来看打开内存快照之后。
JProfiler是用于分析J2EE软件性能瓶颈并能准确定位到Java类或者方法有效解决性能问题的主流工具, 目前还不会使用,回头学习使用之后 再单独介绍一下这个工具 ~