首页
学习
活动
专区
圈层
工具
发布

IBM
EN

Stack Overflow用户
提问于 2008-10-08 13:53:53
回答 6查看 8.3K关注 0票数 4

我经常在IBM上找到OutOfMemoryException。我认为出现此异常是因为我的应用程序从数据库中检索大量数据。因此,我限制所有查询不要撤回超过1000条记录的数据,并设置如下JVM

代码语言:javascript
复制
+ Verbose garbage collection
+ Maximum Heap size = 1024 (RAM on my server is 16 GB and now I already change to 8192)
+ Debug arguments = -Djava.compiler=NONE -Xdebug -Xnoagent  
                    -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777
+ Generic JVM arguments = -Dsun.rmi.dgc.server.gcInterval=60000 
                          -Dsun.rmi.dgc.client.gcInterval=60000 -Xdisableexplicitgc  
                          -Dws.log=E:\WebApp\log -Dws.log.level=debug
(ws.log and ws.log.level are my properties)

我在概要文件文件夹中找到了 heapdump javacore snap 文件--我认为它们可以告诉我问题的原因,但我不知道如何读取/使用堆转储、javacore和snap文件。

请告诉我如何预防/避免/修复OutOfMemoryException。谢谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-10-08 14:34:40

对此的答案取决于与OutOfMemoryException关联的消息。你也可以试试-XX:MaxPermSize=..。并将其设置为256米这样更大的尺寸。

另外,如果在某个地方有一个递归函数,这可能会导致堆栈溢出。

如果可以,请发布与异常相关的消息。Stacktrace也可能有帮助。

票数 1
EN

Stack Overflow用户

发布于 2008-10-08 14:45:40

如果您想查看堆转储文件,IBM提供了分析它们的工具这里

票数 3
EN

Stack Overflow用户

发布于 2009-05-19 08:12:56

“谢谢你的回忆”是一篇很好的关于JVM使用内存的文章,它可能有助于分析这个问题.

感谢布瓦莱塞提供这个链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/182876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档