问题描述
我们相信我们已经找到了答案。我们正在运行的系统是具有多个cpu的服务器级计算机,JRE正在检测多个cpu,并将GC设置为使用并行而不是串行GC,这与XX:MaxHeapFreeRatio设置不兼容。
解决方法
我有一个带有以下参数的Java应用程序,但是即使总可用空间大于45%(可以通过可视VM看到),也无法回收堆。JVM是否有任何理由不释放该堆空间?与Java6中预期的设置相同。运行Java5运行时和编译时间
java -jar -Xmx1024m -XX:MinHeapFreeRatio=15 -XX:MaxHeapFreeRatio=45 -XX:+HeapDumpOnOutOfMemoryError <myjarname>