java - 在 OSX 上使用 G1 和 IntelliJ 2017.1 的冲突收集器组合

标签 java intellij-idea garbage-collection

我正在尝试使用 Intellij Community Edition 2017.1 配置垃圾回收。使用以下 /Users/jilles/Library/Preferences/IdeaIC2017.1/idea.vmoptions

# custom IntelliJ IDEA VM options

-XX:+UseG1GC

它拒绝以此开头。上面的文件只有 1 个应该打开 G1 的选项。我只是删除了选项,直到找到导致问题的选项。经过一番挖掘,我至少设法让它在命令行上告诉我原因(这些东西永远不会出现在日志中):

~/Library/Preferences/IdeaIC2017.1 $ /Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS/idea
2017-04-14 13:41:52.697 idea[54761:1579154] allVms required 1.8*,1.8+
2017-04-14 13:41:52.701 idea[54761:1579163] fullFileName is: /Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions
2017-04-14 13:41:52.701 idea[54761:1579163] fullFileName exists: /Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions
2017-04-14 13:41:52.701 idea[54761:1579163] Value of IDEA_VM_OPTIONS is (null)
2017-04-14 13:41:52.701 idea[54761:1579163] Processing VMOptions file at /Users/jilles/Library/Preferences/IdeaIC2017.1/idea.vmoptions
2017-04-14 13:41:52.702 idea[54761:1579163] Done
Conflicting collector combinations in option list; please refer to the release notes for the combinations allowed
2017-04-14 13:41:52.710 idea[54761:1579163] JNI_CreateJavaVM (/Applications/IntelliJ IDEA CE.app/Contents/jdk) failed: 4294967295

发行说明似乎实际上包含已修复的问题列表,其中似乎没有一个与垃圾收集有关。

intellij不支持G1垃圾收集器吗?那些冲突的设置是什么,它们在哪里配置或者为什么不允许这样做?针对 intellij 的 GC 配置的当前最新建议是什么?我很抱歉地问,因为这在 intellij 的上下文中似乎是一个争论不休的话题,但我发现与此相关的几乎所有内容都是针对 java + intellij 的古老版本。谷歌似乎很乐意推荐可追溯到 2006 年的文章,这没什么帮助。

/Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions 没有配置任何垃圾收集的东西,并且带有一些奇怪的低堆大小默认值,几乎肯定需要一定程度的调整:

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops

最佳答案

我还没有试过这个,但我怀疑(正如你显然做的那样)它与另一个 GC 配置冲突。

您是否尝试过关闭其他选项以取消可能由父配置添加的任何其他选项,例如通过做类似的事情:

-XX:-UseParallelGC
-XX:-UseConcMarkSweepGC
-XX:+UseG1GC

更新:

关于java - 在 OSX 上使用 G1 和 IntelliJ 2017.1 的冲突收集器组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411200/

相关文章:

java - 使用 JAXB 生成 Java 原始类型的 XML 模式类型不添加 required 到它

java - HashMap 类型找不到符号

java - Hadoop 3.1.2 无法从/webhdfs/v1/?op=LISTSTATUS : Server Error 检索数据

java - @Componenscan 在 Springboot Spring MVC 应用程序中的使用

intellij-idea - 如何在IntelliJ Idea中设置外部库的javadoc?

java - 如何查找应用程序中花费的 GC 时间(从应用程序内部)

java - 在该组合物上使用装饰器模式

python - 如何在 2016.1 Intellij IDEA/Python 社区版 5.1.145.45 中启用 python 文档字符串插入

java - 复合对象中的父子关系?

java - 我的应用程序崩溃了,因为根据垃圾收集器的说法,仅剩余 4% 的堆内存...我该如何防止这种情况发生?