gpt4 book ai didi

java - 扫描仪程序 OutOfMemoryError 和使用内存分析器 (MAT

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:24 24 4
gpt4 key购买 nike

我正在尝试分析我的 Java 小程序的堆转储,即使我如本文所示增加堆大小,它也会耗尽堆空间。 Applet: Java heap space

现在我今天早上进行了一些堆转储(是的..可以进行数字转储),并尝试使用 MAT 和 Visual VM 1.3.5 来分析它们。运行泄漏测试后,关键的嫌疑人是 org.eclipse.jdt.internal.core.JavaModelManager 和 org.eclipse.jst.jee.archive.internal.ArchiveImpl。我没有在我的代码中使用过这些。

Visual Vm 显示最高空间被 Byte[]、Int[]、Char[]、java.lang.string 和 Short[] 类占用。我没有在我的程序中使用太多这些。我应该如何理解这个转储以及我的下一步应该是什么?如果需要,我可以发布转储的副本。

更新:就我而言,MAT 比视觉 VM 更好。从早上开始,我一直在使用这两种工具进行转储(再次是数字转储)并对其进行分析。虽然 VVM 在其泄漏可疑报告中将 org.eclipse.jdt.internal.core.JavaModelManager 和 org.eclipse.jst.jee.archive.internal.ArchiveImpl 显示为嫌疑对象,但 Eclipse 内存分析器 (MAT) 显示我的 swing 应用程序正在文件夹中制作图像的缩略图(每个图像约为 100kb)并将它们显示为 JToggleButton。但一旦添加缩略图,JtoggleButton 大小为 6MB。因此,如果文件夹中有 100 张图像,则图像的缩略图至少为 600MB。除此之外,我需要用这个程序做其他事情。在这种情况下,MAT 帮助识别占用最多堆空间的确切对象。

谢谢DJ。

最佳答案

1)我在运行程序的不同点使用 Jconsole 创建了堆转储,2)将它们导入内存分析器3)发出泄漏嫌疑人报告4)观察最大实例的大小和数量。这向我展示了问题,我正在尝试解决它,但我不知道如何解决..。至少很高兴我发现了 MAT,就我而言,它绝对比 Visual VM 更有帮助。希望它对其他人有帮助。下面是我的下一个问题的链接。

swing applet.. jtogglebutton size is 6mb. how can i reduce the size

关于java - 扫描仪程序 OutOfMemoryError 和使用内存分析器 (MAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com