【发布时间】:2017-06-25 10:19:04
【问题描述】:
在我们的团队中,我们使用的服务存在溢出问题。它是由较长的 API 延迟引起的,其中 GC 时间占用了大部分时间。然后我发现堆内存使用率很高。我使用 jmap 获得了大约 4.4 GB 的服务的堆转储。我使用 Eclipse Memory Analyzer 来解析堆转储。我发现 2.8GB 的堆转储是无法访问的对象。 任何人都有建议我应该怎么做才能进一步调试这个问题? 谢谢你。
【问题讨论】:
-
你有没有试过找出这些无法到达的对象是什么以及它们来自哪里?
-
我遇到内存泄漏的主要问题是 IO 流。检查你是否忘记关闭它们。注意:即使您将变量设置为 null,它们也会保留在内存中(当然,如果您不关闭)
-
问题是我不知道如何检查无法访问的对象来自哪里,因为它们无法访问。能给我一些建议吗?
标签: java memory memory-leaks heap-dump