Intellij idea堆大小无法更改。

4

有一天,我运行了一个很大的程序,弹出一个窗口说堆内存不足,我将其设置为2014M,然后点击继续。一切都很好。

但我不喜欢数字2014,我想要2048。所以,我在idea64.exe.vmoptions中更改了-Xmx选项(如下所示),然后重新启动了Idea。(根据这个文档)然而,什么也没有改变,堆大小仍然是2014M。

-Xms512m
-Xmx2048m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

在这里输入图片描述

然后,我更改了所有我能找到的idea64.exe.vmoptions文件,并重新启动了程序,但仍然失败。

在这里输入图片描述

操作系统:Windows 10 64位
IDEA版本:2018.1

如何将堆大小更改为2048M?

请帮忙解决问题,谢谢。

更新:

那天,我正在调试一些加密一些巨大对象的代码,在使用复制值功能后,弹出窗口显示。

我尝试按照官方文档更改IntelliJ Idea的JVM堆大小,但没有起作用。

堆内存统计数据在此处:

在这里输入图片描述

更新2:

日志:

2018-07-23 09:54:04,184 [    224]   INFO -        #com.intellij.idea.Main - JVM Args: -Xms512m -Xmx2048m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djb.vmOptionsFile=C:\Users\huayu\.IntelliJIdea2018.1\config\idea64.exe.vmoptions -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2018.1 -XX:ErrorFile=C:\Users\huayu\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\huayu\java_error_in_idea.hprof 

1
Windows 用户账户控制(UAC)可能是问题的原因。如果启用,文件可能被移动到 c:\Users<user name>\AppData\Local\VirtualStore<application directory> 目录下。您也可以在 idea.log 中查看使用的 .vmoptions 文件 - 它会在启动时记录。 - Andrey
谢谢,我找到了日志,日志大小为2048MB。我还没有弄清楚... - Zhili
4个回答

3
新版本的IDEA使用不同的文件来存储虚拟机选项。旧版本使用C:\Program Files\JetBrains\IntelliJ IDEA {version}\bin\idea64.exe.vmoptions,但现在这些配置存在于C:\Users{user}.IntelliJIdea{version}\config\idea64.exe.vmoptions中。
您可以从IntelliJ访问此文件。在帮助菜单上,单击编辑自定义VM选项。 然后重新启动IDEA,它应该会更新。
注意:底部右侧显示的值似乎与您在配置文件中指定的值不完全相符。不确定为什么。
另请参阅:如何在IntelliJ IDEA上增加内存堆大小?

谢谢!但我尝试过了,没有起作用。在发布之前,我阅读了这篇文档https://www.jetbrains.com/help/idea/increasing-memory-heap.html。它应该可以工作,我认为可能是我的操作系统出了问题。 - Zhili

3

经过数小时的搜索,在Windows 10操作系统中,打开控制面板 => 系统 => 高级系统设置 => 系统属性 => 高级选项 => 环境变量。

_JAVA_OPTIONS -Xmx8192M enter image description here


0

当你弹出那个窗口时,你改变了在IntelliJ中运行的项目的堆大小,而不是IntelliJ本身的堆大小。你需要在项目的运行配置中设置。

启动选项改变IntelliJ本身的堆大小,这并不会始终显示在屏幕上。


嗨,我知道你的意思。是我的错,我没有说清楚。那个弹窗是在调试会话中“复制值”后出现的。我想更改的是IntelliJ的堆大小,请看更新内容。 - Zhili

0

我刚刚意识到,显示值的内存指示器来自32位vmoptions文件,而我正在运行64位的IDEA。因此,该指示器未显示正确的值。


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