jvm内存溢出问题的分析与解决

一、java中jdk1.8概念图的网址及结构如下:

网址: https://docs.oracle.com/javase/8/docs/
结构图:
jvm内存溢出问题的分析与解决

二、写一个简单的内存溢出程序。

1、创建一个空的学生类
jvm内存溢出问题的分析与解决
2、编写一个内存溢出的测试类
jvm内存溢出问题的分析与解决
3、配置参数详解

  • -Dfile.encoding=UTF-8
  • -Xms20m -Xmx20m 设置堆大小20m,将最小和最大值设置相等,避免扩展
  • -XX:+HeapDumpOnOutOfMemoryError dump出当前的内存堆转储快照
  • -XX:HeapDumpPath=E:\job 指定路径(转储文件还是挺大的)
  • -XX:SurvivorRatio=8 存活比2:8

4、配置程序jvm参数,右键选择【Run As】----->【Run Configurations…】,在VM arguments中设置dump出当前的内存堆转储快照,并设置堆大小为20兆,超过20兆报内存溢出错误。
jvm内存溢出问题的分析与解决5、右键运行程序,会很快报堆内存溢出。
jvm内存溢出问题的分析与解决
6、在该项目的路径下会生成hprof格式的快照文件。该格式文件用notepad++打开是乱码,需要借助Eclipse Memory内存分析工具打开。
jvm内存溢出问题的分析与解决jvm内存溢出问题的分析与解决

三、Eclipse Memory内存分析工具下载与安装

1、下载步骤如下:

(1)lz已下载好win64位版本的百度云链接如下:
https://pan.baidu.com/s/1gk0oYM1oQqj_xNPwHoATPw
提取码:0osr
(2)、官网下载如下:
点击此链接进入Eclipse Memory官网页面
jvm内存溢出问题的分析与解决jvm内存溢出问题的分析与解决jvm内存溢出问题的分析与解决jvm内存溢出问题的分析与解决jvm内存溢出问题的分析与解决
2、安装步骤如下:

jvm内存溢出问题的分析与解决jvm内存溢出问题的分析与解决

四、Eclipse Memory内存分析工具的使用

1、点击【File】---->【Open Heap Dump…】。如下图:
jvm内存溢出问题的分析与解决2、选择步骤一中生成的.hprof格式的快照文件。点击【打开】
jvm内存溢出问题的分析与解决3、点击【Finish】
jvm内存溢出问题的分析与解决4、出现如下图即可:
jvm内存溢出问题的分析与解决5、内存出分析原因如下图:
jvm内存溢出问题的分析与解决