扫描仪程序OutOfMemoryError&;使用内存分析器(MAT)进行Java堆转储分析

扫描仪程序OutOfMemoryError&;使用内存分析器(MAT)进行Java堆转储分析,java,out-of-memory,heap,heap-dump,Java,Out Of Memory,Heap,Heap Dump,我正在尝试分析Java小程序的堆转储,即使我如本文所示增加堆大小,它也会耗尽heapspace 今天早上我做了一些堆转储(是的,有可能进行数字转储),我试图用MAT和Visual VM 1.3.5对它们进行分析。在运行泄漏测试之后,关键的可疑点是org.eclipse.jdt.internal.core.JavaModelManager和org.eclipse.jst.jee.archive.internal.ArchiveImpl。我在代码中没有使用任何这些 Visual Vm显示,字节[]、

我正在尝试分析Java小程序的堆转储,即使我如本文所示增加堆大小,它也会耗尽heapspace

今天早上我做了一些堆转储(是的,有可能进行数字转储),我试图用MAT和Visual VM 1.3.5对它们进行分析。在运行泄漏测试之后,关键的可疑点是org.eclipse.jdt.internal.core.JavaModelManager和org.eclipse.jst.jee.archive.internal.ArchiveImpl。我在代码中没有使用任何这些

Visual Vm显示,字节[]、Int[]、Char[]、java.lang.string和short[]类占用了最大的空间。我在程序中没有使用太多此类。我应该如何理解此转储以及下一步应该做什么?如果需要,我可以发布转储的副本

更新:在我的例子中,MAT比VisualVM好。从早上开始,我一直在使用转储(同样是数字转储)并使用这两种工具进行分析。而VVM显示org.eclipse.jdt.internal.core.JavaModelManager和org.eclipse.jst.jee.archive.internal.ArchiveImpl是泄漏可疑报告中的可疑对象,eclipse memory analuzer(MAT)显示我的swing应用程序正在制作文件夹中图像的缩略图(每个图像约100kb)并将其显示为JToggleButton。但一旦添加缩略图,JToggleButton的大小为6MB。因此,如果文件夹中有100个图像,则图像的缩略图至少为600MB。除此之外,我还需要使用此程序执行其他操作。在本例中,MAT帮助确定占用最多堆空间的确切对象

谢谢 DJ.

1)我在运行程序的不同点使用Jconsole创建了堆转储, 2) 将它们导入内存分析器 3) 做了泄漏嫌疑犯报告 4) 观察最大实例的大小和数量。 这让我明白了问题所在,我正试图解决它,但我不知道如何解决。。然而至少很高兴我发现了MAT,在我的情况下,它肯定比VisualVM更有用。希望它能帮助别人。下面是我下一个问题的链接

1)我在运行程序的不同阶段使用Jconsole创建了堆转储, 2) 将它们导入内存分析器 3) 做了泄漏嫌疑犯报告 4) 观察最大实例的大小和数量。 这让我明白了问题所在,我正试图解决它,但我不知道如何解决。。然而至少很高兴我发现了MAT,在我的情况下,它肯定比VisualVM更有用。希望它能帮助别人。下面是我下一个问题的链接


什么是“数字转储”?这与JMap生产的产品有什么不同吗?在您更新后,这里还有实际问题吗?是的,先生。。我仍在尝试如何减少缩略图的大小(6mb)。我的实际图像小于100kb。我使用的是toglBtn=newjtogglebutton(“+i,newimageicon(ImageIO.read)(新文件(listOfFiles[i].getAbsolutePath()).getScaledInstance(139163,buffereImage.SCALE_SMOOTH));创建缩略图并使其成为可单独选择的图标按钮。。每个按钮现在都有6 mb。您应该编辑此问题以便人们知道您在问什么,或者关闭它并提出一个新问题。什么是“数字转储”?这与JMap生产的产品有什么不同吗?在您更新后,这里还有实际问题吗?是的,先生。。我仍在尝试如何减少缩略图的大小(6mb)。我的实际图像小于100kb。我使用的是toglBtn=newjtogglebutton(“+i,newimageicon(ImageIO.read)(新文件(listOfFiles[i].getAbsolutePath()).getScaledInstance(139163,buffereImage.SCALE_SMOOTH));创建缩略图并使其成为可单独选择的图标按钮。。每个按钮现在都有6MB。您应该编辑此问题以便人们知道您在问什么,或者关闭它并提出新问题。