Java5 -XX:MaxHeapFreeRatio = 45不会释放堆,即使超过45%的堆可用

问题描述

我们相信我们已经找到了答案。我们正在运行的系统是具有多个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>

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”