【问题标题】:How to get Class responsible for creating large number of primitive bytes?如何让 Class 负责创建大量原始字节?
【发布时间】:2019-10-05 04:24:28
【问题描述】:

问题:
我们的应用程序(在 Java 中使用 Vertx)占用了超过 10 GB 的堆内存。它在应用程序中造成内存泄漏。

我尝试了什么:
为了分析原因,我使用 jmap 进行了堆转储并使用 jhat 进行了分析。 jhat 的结果只是表明某个字节本身占用了 8 GB 的内存和数百万个实例。但是每个数组或集合内部都使用字节。我没有在我的项目中直接使用字节。

需要帮助:
请建议我在我的代码中调试负责内存泄漏的类的方式。任何可以显示层次结构和实例计数的工具。

【问题讨论】:

  • java 版本?很多字节数组实例通常意味着很多字符串。并且任何堆转储分析器都应该能够告诉您所有这些字节数组的来源......

标签: memory-leaks jvm out-of-memory monitoring heap-memory


【解决方案1】:

您可以使用 Eclipse MAT 来分析和追踪“GC Roots 的路径”:https://www.eclipse.org/mat/about/screenshots.php

【讨论】:

    猜你喜欢
    • 2018-08-16
    • 2020-06-25
    • 2010-11-14
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多