首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要帮助用垫子找出我的记忆泄漏

我需要帮助用垫子找出我的记忆泄漏
EN

Stack Overflow用户
提问于 2011-07-27 16:04:11
回答 1查看 2.2K关注 0票数 8

我用垫子来比较两个堆转储。我每天都在往垃圾堆里扔垃圾,而且每天都会长出200米。我认为泄漏与java.util.zip有关,因为表显示了什么,也因为我们最近添加了一个新的过程,即压缩和解压缩大量文件。(见图)

此时,我打开控制器并对.Inflater进行过滤。这就产生了大量的java.util.zip.Inflater列表。现在,我想看看是什么保持这些打开,所以我选择了一个,并运行路径的GC根排除弱和软引用(见图)。

看起来这与罐子膨胀有关,与我的过程无关。在这一点上,我被困,需要一些建议。

编辑1

肖恩问了关于ThreadLocals的事。如果查看没有过滤器的dominator_tree,就会发现java.lang.ApplicationShutdownHooks占堆的58%。如果我扩展其中一些条目,您可以看到它们似乎在ThreadLocalMap中。我怎么能找到把它们放在那里的东西?

编辑2

肖恩的评论让我走上了正确的轨道。我使用Glassfish v2.0,它有一个内存泄漏。它不断地创建新的LogManagers并将它们添加到ApplicationShutdownHooks集合中。

我通过打开ApplicationShutdownHooks并手动从集合中删除对象来解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-30 04:14:26

肖恩的评论让我走上了正确的轨道。我正在使用Glassfish v2.0,它有一个内存泄漏。它不断地创建新的LogManagers并将它们添加到ApplicationShutdownHooks集合中。

我通过打开ApplicationShutdownHooks并手动从集合中删除对象来解决这个问题。

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

https://stackoverflow.com/questions/6847580

复制
相关文章

相似问题

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