Java5-XX :MaxHeapFreeRatio=45 doesn't release heap even when more than 45% of the heap is free

标签 java memory

我有一个带有以下参数的 Java 应用程序,但即使总可用空间大于 45%(可以通过可视化 VM 看到),堆也不会被回收。 JVM 是否有任何理由不释放该堆空间?相同的设置在 Java6 中按预期工作。运行Java5运行时和编译时

java -jar -Xmx1024m -XX:MinHeapFreeRatio=15 -XX:MaxHeapFreeRatio=45 -XX:+HeapDumpOnOutOfMemoryError <myjarname>

最佳答案

我们相信我们已经找到了问题的答案。我们正在运行的系统是具有多个 CPU 的服务器类机器,JRE 正在检测多个 CPU 并将 GC 设置为使用并行而不是串行 GC,这与 XX:MaxHeapFreeRatio 设置不兼容。

关于Java5-XX :MaxHeapFreeRatio=45 doesn't release heap even when more than 45% of the heap is free,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160445/

相关文章:

c# - 为 Web 服务创建 Java stub 的库

java - 两个类,相同的代码,一个获取 StackOverflow

java - 从 Java VM 5 更新到 6 确实大大增加了内存消耗

java - 如何改进应用程序以避免堆空间问题

c - malloc 和获取最近释放的内存

java - 在jboss中配置数据源6-错误

java - 如何给JMenu Screen添加背景图片?

java - 在 Docker 容器中构建 Java Gradle 项目?

c++ - 在循环外声明 var 不好吗?

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