代码之家  ›  专栏  ›  技术社区  ›  Rips

非堆内存和加载类的数量不断增加

  •  0
  • Rips  · 技术社区  · 11 年前

    我们正在对应用程序进行性能测试。 在测试过程中,我们发现非堆内存和加载类的总数随着时间的推移不断增加。

    我们猜测可能是第三方jar或应用程序代码泄漏。

    找到此类泄漏或定位问题的最佳方法是什么? 有什么工具可以帮助我找到根本原因吗?

    我们正在使用Jboss EAP 6.1。

    3 回复  |  直到 11 年前
        1
  •  1
  •   DmitryKanunnikoff    11 年前

    通过JDK中的jvisualVm生成第一个堆转储,并使用 Memory Analyzer (MAT) .

    然后在标题“Non Heap”中看到这个方向: http://www.yourkit.com/

        2
  •  1
  •   Community CDub    7 年前

    在我看来,代码中的某些东西可能会不断创建新的动态代理类。我认为这会让你泄露你所描述的特征。

    其他Q&A解释一下跟踪Java存储泄漏的一般技术;例如

    我建议您首先尝试确定 Class 物体。我怀疑您会发现堆外内存分配与它们相关;例如由JIT编译器产生的相关联的本地代码段。

        3
  •  0
  •   DaveH    11 年前

    JVM附带了一些工具,可以让您查看堆的内容(jhat和jmap)。使用这些可以让您了解为什么您看到的加载类数量超过了预期数量。

    在尝试查看非堆内存使用情况之前,我会先从这里开始。