我正在尝试使用 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
更新:
- 显然,对另一个类似问题的另一个回答使用了相同的方法。参见 this answer至 Intellij Idea15 CE fails to launch with -XX:+UseG1GC .
- 另请参阅这个非常有用的页面,其中还列出了解决方案(虽然没有说明原因,但我一开始甚至没有注意到“-”符号):https://github.com/FoxxMD/intellij-jvm-options-explained
关于java - 在 OSX 上使用 G1 和 IntelliJ 2017.1 的冲突收集器组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411200/