下图是否表明我正在使用内存并且它没有被垃圾收集?
一旦我开始使用较少的堆,我预计橙色图(分配的堆)会下降。
- 这是一个无效的假设吗?
- 一旦分配,堆在程序关闭之前不会缩小吗?
从图中可以清楚地看出,您的 JVM 能够缩小堆。这可以从橙色线在下午 3 点 10 分之前略微下降中看出。
但是,稍后 JVM 选择不收缩堆。这几乎可以肯定是因为未使用的堆的比例不够大。行为由-XX:MinHeapFreeRatio
和控制-XX:MaxHeapFreeRatio
。
有关讨论,请参阅http://stopcoding.wordpress.com/2010/04/12/more-on-the-incredible-shrinking-jvm-heap/