这是否表明Java存在内存泄漏?

时间:2013-02-04 22:15:55

标签: java memory

以下图表是否表明我正在使用内存并且它没有被垃圾收集?

enter image description here

一旦我开始使用较少的堆,我预计橙色图(已分配的堆)会停止运行。

  • 这是一个无效的假设吗?
  • 分配后,堆不会 收缩直到程序结束?

1 个答案:

答案 0 :(得分:10)

从图中可以清楚地看出,您的JVM能够缩小堆。这可以从橙色线看到,在下午3:10之前稍微下降。

但是,稍后JVM选择不缩小堆。这几乎可以肯定是因为没有大量的堆未使用。行为由-XX:MinHeapFreeRatio-XX:MaxHeapFreeRatio控制。

有关讨论,请参阅http://stopcoding.wordpress.com/2010/04/12/more-on-the-incredible-shrinking-jvm-heap/