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

2022-09-02 01:13:10

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

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

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

所以,我把它回滚了。

错误消息如下所示:“初始堆大小设置为大于最大堆大小的值”。

问题出在哪里?

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

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


答案 1

如果您在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。在以下情况下,您需要将路径中的该值更改为您所在的版本:


答案 2

我在Linux上遇到了同样的问题。配置文件位于目录中,如下所示 ~/。IntelliJIdeayyyy.n/config,其中 yyyy 是年份,n 是该年份的版本号。确保该值高于“这是我为带有8GB RAM的ubuntu 18.04工作配置”~/.IntelliJIdea2018.2/config/idea64.vmoptions-Xms-Xmx

# 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

推荐