许多JVM从不将内存返回给操作系统。是否这样做是特定于实现的。对于那些没有设置的内存,通常在启动时通过-
Xmx标志指定的内存限制是为其他应用程序保留内存的主要方法。
我很难找到有关此主题的文档,但是Sun的Java
5的垃圾收集器文档确实解决了这一问题,这表明在正确的条件下,如果使用正确的收集器,堆将缩小—默认情况下,如果超过70
%的堆是空闲的,它将收缩,因此只有40%的堆是空闲的。用于控制这些的命令行选项是
-XX:MinHeapFreeRatio和
-XX:MaxHeapFreeRatio。



