分析/可视化两个版本的程序之间的GC使用模式?

时间:2012-04-06 00:10:20

标签: java performance garbage-collection visualvm

我花了几天时间大大改进了我们的软件,摆脱了大量不必要的对象分配。这些改进是戏剧性的,我现在可以运行一个(几乎)没有分配新对象的进程。在我的修复之前创建了兆字节的兆字节对象。

现在,我希望以一种令人印象深刻的方式可视化改进(它是关于可衡量的影响:)。有小费吗?我使用VisualVM进行了大量的仪器测试,但它并没有真正显示出来。监视器显示一些名为" GC活动"但它并没有那么有用。理想情况下,我希望能够在修复之前和之后保持过程中创建的所有对象大小的累积计数。任何允许我这样做的工具?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用GCMV。它支持许多不同的详细GC格式,并允许您将比较图表放在一起。我们经常为内存泄漏等做这件事。我们想要在“故事前后”中展示。

它还对总GC,总GC时间等事项进行了有趣的总结。在这些案例中看起来非常引人注目。

答案 1 :(得分:0)

使用VisualVM,您有两个选择。您可以使用内存分析,它跟踪每个类分配的实例数,或者您可以使用support for tracking of cumulative Java heap bytes allocated on a per-thread basis,它是在VisualVM 1.3.3中添加的。