Eclipse Memory Analyser : java.lang.OutOfMemoryError: Java heap space
Eclipse Memory Analyser : java.lang.OutOfMemoryError: Java heap space
我的应用程序有问题。当我尝试打开页面时,应用程序引发 java.lang.OutOfMemoryError: Java heap space
.
错误
我们使用 Struts2 作为框架,Tomcat 6 作为服务器,Openejb 作为数据库连接。
我试图通过 Eclipse 扩展内存分析器找出内存不足的原因,但我不得不说这并不容易理解。
这是内存分析器的报告:
我不太确定是什么引发了这个错误,但有没有可能是数据库连接没有关闭,然后包含这个连接的映射对于 JVM 来说变得太大了。
我通过为 JVM 提供更多内存 space 来解决问题,但我不确定这是解决此问题的好方法。
谁能帮帮我?
谢谢
根据您的快照,您的问题来自字段 resourceEntries
of the WebappClassLoader
,根据 javadoc:
The cache of ResourceEntry
for classes and resources we have loaded,
keyed by resource name.
换句话说,它是一个缓存,将存储所有资源文件的所有元信息和 类 通过您的 Web 应用程序 ClassLoader
加载以避免扫描每次调用时的整个类路径,因为当您有很多 jar 文件时,它可能会非常慢。
据我所知 the source code,对我来说,除了像您已经做的那样增加堆大小之外,您无能为力。
我的应用程序有问题。当我尝试打开页面时,应用程序引发 java.lang.OutOfMemoryError: Java heap space
.
我们使用 Struts2 作为框架,Tomcat 6 作为服务器,Openejb 作为数据库连接。
我试图通过 Eclipse 扩展内存分析器找出内存不足的原因,但我不得不说这并不容易理解。
这是内存分析器的报告:
我不太确定是什么引发了这个错误,但有没有可能是数据库连接没有关闭,然后包含这个连接的映射对于 JVM 来说变得太大了。
我通过为 JVM 提供更多内存 space 来解决问题,但我不确定这是解决此问题的好方法。
谁能帮帮我?
谢谢
根据您的快照,您的问题来自字段 resourceEntries
of the WebappClassLoader
,根据 javadoc:
The cache of
ResourceEntry
for classes and resources we have loaded, keyed by resource name.
换句话说,它是一个缓存,将存储所有资源文件的所有元信息和 类 通过您的 Web 应用程序 ClassLoader
加载以避免扫描每次调用时的整个类路径,因为当您有很多 jar 文件时,它可能会非常慢。
据我所知 the source code,对我来说,除了像您已经做的那样增加堆大小之外,您无能为力。