我在元空间中出现内存不足。正如我在谷歌搜索后理解的那样,元空间中的内存不足错误可能是由于 Classloader 中的泄漏。因此,为此我开始分析 Eclipse MAT 中的堆转储并打开“类加载器资源管理器”,它给出以下内容:
正如我从上述数据中了解到的那样,com.newrelic.bootstrap.BootstrapAgent$JVMAgentClassLoader 占用了 396,707 个未进行垃圾回收的实例。我的理解正确吗?
在我选择了这一行并打开“GC Roots 的路径 -> 排除所有幻象/弱/软 Ref”后,我观察到 Shallow Heap 和 Retained Heap 分别为 96 和 231,040。
在我为类 org.apache.felix.framework.BundleWiringImpl$BundleClassLoader 在“类加载器资源管理器”中选择另一行并再次打开“GC 根路径-> 排除所有幻象/弱/软引用”之后,现在我看到了这些数据:
从这些数据中,是否可以安全地得出结论,在此类中存在泄漏: com.newrelic.agent.util.DefaultThreadFactory$AgentThreadImpl 不是垃圾收集的?
如果没有,请建议我还应该检查什么?