VisualVM:理想的堆内存使用情况图

我使用VisualVM监视我的Java应用程序(用JDK 1.7编写)。 以下是显示此应用程序运行期间的堆内存使用情况的图表。

在这里输入图像描述

看这张图看到它有很多尖峰。 这些尖峰表示应用程序创建对象。 一旦应用程序完成后,它会使用gc破坏它们(在本例中隐式调用)。

此外,这是应用程序仍在运行时内存分析器的屏幕截图

在这里输入图像描述

对我来说,图的向上和向下性表明java对象的有效使用。 这个推论是否正确?

人们应该瞄准的堆使用图的理想性质是什么?

有没有其他方法可以改进我的应用程序的堆内存使用情况?


对我来说,图的向上和向下性表明java对象的有效使用。 这个推论是否正确?

我会说它的垃圾收集器的有效使用。 我会建议创建更少的对象可能更有效。

人们应该瞄准的堆使用图的理想性质是什么?

这取决于你的应用程序。 我倾向于瞄准几乎完全平坦的一个。

有没有其他方法可以改进我的应用程序的堆内存使用情况?

加载

  • 创造更少的垃圾。 使用你的内存分析器找出垃圾正在创建的地方。
  • 使堆更大,所以它不像往常一样。
  • 将您保留的数据从堆中移出(您似乎没有太多)
  • 在你的情况下,最好的选择是减少你生产垃圾的数量。


    只要堆的大小随着时间的推移几乎相同,你就可以。 由于在Sun JVM中暂停世界gc的性质,所使用的堆应该上下移动。 看起来应用程序中会生成很多短暂的对象,但效率可能很低,但有时您需要创建它们。 这是Java的生活方式:D

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

    上一篇: VisualVM: Ideal Heap Memory Usage Graph

    下一篇: VisualVM : Comparing performance of two version of same application