关于java:Intellij堆大小,初始堆大小设置为大于最大堆大小的值

Intellij heap size, Initial heap size set to a larger value than the maximum heap size

我是Java的初学者,刚开始使用Intellij作为我的IDE。

当我使用它时,有时会延迟。

我将xms和xmx更改为较大的堆大小(xms = 1024,xmx = 2048),但是会引发错误。

所以,我回滚了。

错误消息是这样的:"初始堆大小设置为大于最大堆大小的值"。

问题是什么?

如果可能,如何增加最大堆大小?

我使用的是笔记本电脑,它有8GB的内存。 使用x64 Intellij.exe。


如果您在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。您将需要在您所使用的版本的路径中将该值更改为


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 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


我在MAC的IntelliJ中也遇到了同样的问题。

IntelliJ中有一个构建过程堆大小配置。您可以在以下位置找到此设置

Preferences > Compiler > Build Process Heap Size

确保Xmx值(在环境或VM选项中)低于设置中的值。如果不是,请在IntelliJ设置中增加" Build Process Heap Size",或在VM选项中减小" Xmx"值。

默认情况下,"构建过程堆大小"为700m。


使用帮助|编辑自定义VM选项,仅将-Xmx值更改为2GB或所需的任何值,-Xms值应小于或等于。请注意,堆太高会使GC暂停时间更长。

您的问题可能根本与内存设置无关。本文档介绍了报告性能问题的正确方法。您需要捕获CPU快照,并将其提交给JetBrains支持或问题跟踪器。