IntelliJ IDEA堆大小,初始堆大小设置为比最大堆大小更大的值。

24
我是Java的初学者,刚开始使用IntelliJ IDEA作为我的集成开发环境。
使用它的时候,有时会出现延迟的情况。
我尝试修改了我的xms和xmx以增加堆大小(xms = 1024,xmx = 2048),但是却报错了。所以我又回滚了修改。
错误信息大致是这样的:“初始堆大小设置为比最大堆大小更大的值”。问题出在哪里呢?
如果可能的话,如何增加最大堆大小呢?
我使用的是一台配备8GB内存的笔记本电脑,并且使用的是x64的IntelliJ.exe文件。
4个回答

20
如果您在2019.2更新后在InteliJ中看到此错误,那是因为更新更改了JVM XMX值为2048m,而没有检查相关的值,这可能会使XMS变得大于最大的XMX值,这是不合法的并会导致该错误。
例如,对于我来说,原本的值是XMX=6000m和XMS=4096m,但在2019.2更新后,它们变成了XMX=2048m和XMS=4096m。
您需要手动更改这些值,使XMS小于或等于XMX。在Mac上,VM选项文件位于~/Library/Preferences/IntelliJIdea2019.2/idea.vmoptions。
注意:该路径假定您使用的是InteliJ版本2019.2。如果不是,请更改路径中的值以匹配您使用的版本。

需要重新启动。文件 > 无效缓存 / 重启... > 仅重启。对我来说,该文件位于~/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/<version>/bin - Jochem Kuijpers
1
我之前使用的是在Windows 10上运行的2019.2.4版本,然后升级到了2019.3版本并遇到了这个bug。尝试使用“exe”文件启动时没有输出任何错误,即使在cmd和powershell中也是如此。通过执行附带的“idea.bat”文件,我收到了有关内存的消息。我检查了我的idea64.vm.options文件,一切看起来都正确。感谢@Mijo,我检查了我的用户配置文件下的文件。它将“-Xmx4096m”更改为“-Xmx2038m”;没错...“-Xmx2038m”...。我将“-Xms2048m”作为最小启动内存。 - Pytry
1
正确的路径:_~/Library/Preferences/IdeaIC2019.2/idea.vmoptions_ - Donald Duck

13

我在Linux上遇到了同样的问题。配置文件位于~/.IntelliJIdea2018.2/config/idea64.vmoptions。目录看起来像是~/.IntelliJIdeayyyy.n/config,其中yyyy是年份,n是该年份发布的版本号。确保-Xms的值高于-Xmx。这是我在拥有8GB RAM的ubuntu 18.04上工作的配置:

# custom IntelliJ IDEA VM options

-server
-Xms4096m
-Xmx4096m
-XX:NewSize=1024m
-XX:MaxNewSize=1512m
-XX:NewRatio=1
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:MaxTenuringThreshold=1
-XX:SurvivorRatio=8
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=65
-XX:+CMSScavengeBeforeRemark
-XX:+UseCMSInitiatingOccupancyOnly
-XX:ReservedCodeCacheSize=64m
-XX:-TraceClassUnloading
-ea
-Dsun.io.useCanonCaches=false

请确保 -Xms 值 小于等于 -Xmx。 - futuredaemon

3
我在MAC上使用IntelliJ时遇到了同样的问题。
在IntelliJ中有一个构建过程堆大小配置。您可以在以下位置找到此设置:
偏好设置 > 编译器 > 构建过程堆大小
请确保Xmx值(在环境或VM选项中)低于设置中的值。如果不是,请增加IntelliJ设置中的构建过程堆大小或减少VM选项中的Xmx值。
默认情况下,构建过程堆大小将为700m。

0

使用帮助 | 编辑自定义 VM 选项,仅更改 -Xmx 值为 2GB 或您需要的任何值,-Xms 值应该更低或相同。请注意,堆过高可能会使 GC 暂停时间更长。

您的问题可能与内存设置无关。报告性能问题的正确方法在此文档中描述。您需要捕获 CPU 快照并将其提交给 JetBrains 支持或问题跟踪器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接