JVM GC事件的编程通知

ins*_*itu 7 java garbage-collection jvm

我想跟踪GC花费了多少时间以及收集了多少内存,但不是通过分析GC日志(即分析我从-XX获得的内容:+ PrintGCWhatever).

我发现我可以使用Sun的ManagementFactory来获取一个GarbageCollectorMXBean,它可以给我一些包含内存信息的GCInfo对象,但我不能保证我可以通过这个意思收集所有 GC.

有人知道在代码中这样做的方法吗?

NPE*_*NPE 4

GarbageCollectorMXBean是我在 Sun JVM 上找到的最好的。根据我的经验,它实际上非常接近您的要求。

我想你可以有一个专门的线程,它会时不时地唤醒以获取 GC 统计信息。这将为收集统计数据时增加一些确定性。