【发布时间】:2013-07-23 07:32:43
【问题描述】:
我用 Java 制作了 MVC webapp,但是当我运行它时,每天一次,由于内存错误,它再次关闭。
这个错误是这样的: 线程“http-apr-12136-exec-42”中的异常 java.lang.OutOfMemoryError:Java 堆空间
java.sql.SQLException: java.lang.OutOfMemoryError: Java 堆空间
我有崩溃统计信息的 hprof,其中具体是如何使用内存的。如果我使用 Eclipse Memory Analizer 打开 hprof,我会得到以下结果:
在rar中:https://mega.co.nz/#!Ht41xJDJ!MooePBSv5yOYSNN5OuvF7Afn2rcN-KJ2tXGSsgqtsaI
或在文件夹中:https://mega.co.nz/#F!6hJUyKbQ!D_Kb23E3KfAJqcd5EeAt0A
在概览报告中,我有这个图形 (OverviewEMA.JPG): 我不知道这张图在说什么……我不明白。
在第二个选项卡,默认报告,我有这个图形(DefaulReport_EMA.JPG): 它说问题可能是“org.hibernate.internal.SessionFactoryImpl”的一个实例。但我不知道如何解决那个实例。
在下一个标签中。在支配树中,再次出现前一个实例,它使用大约 42MB 内存(与显示第一张图相同)。图片是DominatorTree_EMA.JPG
如果我扩展第一个类(给出问题的类),我有这个图形(DominatorTreeExpanded_EMA.JPG):
在下一个选项卡中,在直方图中,图形是这样的 (Histogram_EMA.JPG):
而在Unreachable objects中,结果是这样的(UnreachableObjects_EMA.JPG):
最后这两张图我不太明白
最后,我还有Java VisualVM的报告,我有这个结果(Heapdump_JVM.JPG):
根据该图,除了 Integer 和 String 对象之外,HashMap 对象是问题所在。我认为的 Hashmap 对象是类发送到 jsp 文件的模型对象,它从 JPA 对象(Hibernate 的对象)开始,所以问题可能是这样,但我不知道如何解决它...
有人可以帮我吗?有人知道我该如何解决吗?您需要更多信息吗?
谢谢!
【问题讨论】:
标签: java hibernate memory-leaks out-of-memory