编程式通知JVM的GC事件

我想追踪在GC中花了多少时间以及已经收集了多少内存,但不是通过分析GC日志(即分析我从-XX获得的信息:+ PrintGCWhatever)。

我发现我可以使用Sun的ManagementFactory来获取一个GarbageCollectorMXBean,它可以给我一些包含内存信息的GCInfo对象,但我无法保证我可以通过这种方式收集所有的GC。

有没有人知道在代码中执行此操作的方法?


GarbageCollectorMXBean是我在Sun JVM上能够找到的最佳选择。 根据我的经验,它实际上非常接近你所要求的。

我想你可以有一个专门的线程,不时醒来得到GC统计数据。 这会在收集统计数据时增加一些确定性。


鉴于获得这些信息的工具种类繁多,您最好使用这些工具来分析GC行为并优化它。 例如使用内存分析器。

您所遇到的问题是,除非信息指出问题的解决方案,否则信息不是非常有用。 (你可以修复)

链接地址: http://www.djcxy.com/p/49069.html

上一篇: Programmatic notification of JVM's GC events

下一篇: Fail to embed Flash by using Data uri scheme