JProfiler - “运行GC”按钮与堆快照的“在堆快照中执行完整GC”选项

问题描述 投票:1回答:1

我有应用程序创建类加载器实例(URLClassLoader)并使用它动态加载Jar文件。接下来,使用反射创建Jar的类实例。最后,所有引用都以Class Loader及其相关对象和类应该被垃圾收集的方式无效。

在JProfiler 10.1.5中进行性能分析时,单击“运行GC”工具栏按钮然后我将获取堆快照(无论是否选择“在堆快照中执行完整GC”选项)。正如我所料,堆上没有Class Loader实例,没有相关的对象和类,它们是垃圾收集的。

另一方面,当我不使用“运行GC”按钮,但选择了多个堆快照时,选择了“在堆快照中执行完整GC”选项(“保留仅由强引用保留的对象”子选项),我总是查看快照上的Class Loader实例,以及相关的对象和类。他们不是垃圾收集!为什么?

java garbage-collection classloader jprofiler
1个回答
1
投票

类加载器被JProfiler视为GC根,堆walker不会尝试收集类加载器。

© www.soinside.com 2019 - 2024. All rights reserved.