首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java G1垃圾收集器是否尊重MaxHeapFreeRatio参数?

Java G1垃圾收集器是否尊重MaxHeapFreeRatio参数?
EN

Stack Overflow用户
提问于 2020-03-12 04:23:48
回答 2查看 623关注 0票数 2

Java垃圾收集器(在Open JDK中实现)是否遵循-XX:MaxHeapFreeRatio=n G1参数?

它在Java 8中尊重它吗?

我发现JEP 346: Promptly Return Unused Committed Memory from G1 是在Java12中交付的,但我不清楚它之前的状态是什么。

EN

回答 2

Stack Overflow用户

发布于 2020-03-12 04:31:38

我发现的一个非权威答案是基于https://bugs.openjdk.java.net/browse/JDK-8078039?focusedCommentId=13632717&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13632717

最值得注意的是,一些GC支持它,一些不支持。G1也支持此选项。

要收缩堆(并释放内存),需要一个完整的GC。如果应用程序不手动触发完整的GC,则可能需要一段时间才能由JVM触发。

所以答案是(对于Java 8):是的……但不是。

(我仍然好奇,在更现代的JVM中,是否有更权威的来源,以及当前的状态是什么)

票数 0
EN

Stack Overflow用户

发布于 2020-03-12 18:35:11

我不知道比源代码更权威的答案,是的,你的答案是正确的-只有在完整的GC之后(至少在JEP之前),内存才会释放。

对于java-8:

这个论点确实很重要,看here for example

这段代码理解起来并不复杂,而here是实际发生的收缩。

有关更广泛的答案(关于java-11,但仍然适用于java-8),请阅读this

底线是-该标志确实很重要,但具体如何取决于实现。你的问题没有简单的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60643928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档