java heap space以及jvisualvm.exe 工具

最近遇到了java heap space错误。

这个问题的原因,其实还是堆溢出了。

解决这个问题

1 首先我们考虑,在代码中哪里使用了较多的对象,但是又没有及时回收。

2 我们可以通过  jvisualvm.exe  工具去查看

 

我们先到jdk文件夹中的bin目录找到jvisualvm.exe。双击运行

java heap space以及jvisualvm.exe 工具_第1张图片

然后找到我们运行的java程序,双击进入

java heap space以及jvisualvm.exe 工具_第2张图片

然后按照下面,选择监视,cpu/内存,堆 Dump

java heap space以及jvisualvm.exe 工具_第3张图片

然后,选择类,按照大小排序,找到消耗最大的对象,右键在实例视图中显示

java heap space以及jvisualvm.exe 工具_第4张图片

这里我找的是int[],反正几个大对象,都要查看的

java heap space以及jvisualvm.exe 工具_第5张图片

找到上图中类型里的相关信息,了解到image是主要原因

然后到程序代码中,去找相关image,手动在最后设置为Null

你可能感兴趣的:(Java)