我的应用程序有很多垃圾收集,我想分析一下。 我想看到的是哪些对象被垃圾收集。我想这会让我知道在哪里寻找优化(添加缓存或其他)。
是否有打印详细GC信息的选项,包括每个类中有多少对象被垃圾收集?
我正在使用G1GC,如果这很重要的话。
谢谢!
答案 0 :(得分:1)
这是答案: Howto print java class garbage collection events?
您需要使用参数
运行JVM-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
答案 1 :(得分:1)
Oracle's JFR(Java Flight Recorder,或Java Mission Control)是一个很好的工具来帮助完成这项任务 - 它显示每个对象的GC负载 - 意味着生成每个类的对象数量(这一起与收集的对象)。非常推荐。
答案 2 :(得分:0)
我不确定G1GC但通常我发现VisualVM工具包非常有帮助。它具有良好的功能,足够深入的对象分析以及良好的速度(很多GC工具在早期就很糟糕)。它也是一种免费工具。
答案 3 :(得分:0)
要跟踪垃圾收集活动,请使用以下命令:
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
答案 4 :(得分:0)