编程式通知JVM的GC事件
我想追踪在GC中花了多少时间以及已经收集了多少内存,但不是通过分析GC日志(即分析我从-XX获得的信息:+ PrintGCWhatever)。
我发现我可以使用Sun的ManagementFactory来获取一个GarbageCollectorMXBean,它可以给我一些包含内存信息的GCInfo对象,但我无法保证我可以通过这种方式收集所有的GC。
有没有人知道在代码中执行此操作的方法?
GarbageCollectorMXBean
是我在Sun JVM上能够找到的最佳选择。 根据我的经验,它实际上非常接近你所要求的。
我想你可以有一个专门的线程,不时醒来得到GC统计数据。 这会在收集统计数据时增加一些确定性。
鉴于获得这些信息的工具种类繁多,您最好使用这些工具来分析GC行为并优化它。 例如使用内存分析器。
您所遇到的问题是,除非信息指出问题的解决方案,否则信息不是非常有用。 (你可以修复)
链接地址: http://www.djcxy.com/p/49069.html