[英]VisualVM: Ideal Heap Memory Usage Graph
我正在使用VisualVM
监视我的Java应用程序(用JDK 1.7
编写)。 以下是显示此应用程序运行的持续时间内堆内存使用情况的图表。
看看这张图,可以看出它中有很多尖峰。 这些峰值表示应用程序创建对象。 一旦应用程序完成它们,它就会使用gc(在本例中隐式调用)来销毁它们。
此外,这是应用程序仍在运行时内存分析器的屏幕截图
对我来说,图的上下性质表明了java对象的有效使用。 这个推论是对的吗?
人们应该瞄准的堆使用图的理想性质是什么?
有没有其他方法可以改善我的应用程序的堆内存使用情况?
对我来说,图的上下性质表明了java对象的有效使用。 这个推论是对的吗?
我会说它有效地使用垃圾收集器。 我建议创建更少的对象可能更有效。
人们应该瞄准的堆使用图的理想性质是什么?
这取决于您的申请。 我倾向于瞄准一个几乎完全平坦的。
有没有其他方法可以改善我的应用程序的堆内存使用情况?
加载
在您的情况下,最好的选择是减少您生产的垃圾量。
只要堆大小随着时间的推移保持几乎相同,你就可以了。 由于在Sun JVM中暂停世界gc的性质,使用的堆应该上下移动。 看起来在您的应用程序中生成了许多短期对象,它可能效率低下,但有时您需要创建它们。 这是Java的生活方式:D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.