如何在Mac上增加IntelliJ IDEA的IDE内存限制?

362

我在Mountain Lion上使用 IDEA 12 Leda。我想增加IDE可用的最大内存。我在Info.plist文件中设置了VMOptions,如下所示:

-Xmx2048m -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar

然而,当我打开IDEA时,我仍然看到最大内存为711m。

jps -v显示我的VMOptions已被加载,但被以下选项替换。

29388  **-Xmx2048m** -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar -Xms128m **-Xmx800m** -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=64m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops -Didea.paths.selector=IdeaIC12 -Dsun.java2d.noddraw=true -Didea.max.intellisense.filesize=2500 -Didea.dynamic.classpath=false -Didea.jars.nocopy=false -Dsun.java2d.d3d=false -Dapple.awt.fullscreencapturealldisplays=false -Dapple.laf.useScreenMenuBar=true -Djava.endorsed.dirs= -Dswing.bufferPerWindow=false -Didea.fatal.error.notification=enabled -Didea.cycle.buffer.size=1024 -Didea.popup.weight=heavy -Didea.xdebug.key=-Xdebug -Dapple.awt.graphics.UseQuartz=true -Dsun.java2d.pmoffscreen=false -Didea.no.launcher=false -DCVS_PASSFILE=~/.cvspass -Didea.use.default.antialiasing.in.editor=false -Dcom.apple.mrj.application.live-resize=false -Didea.smooth.progress=false
29392 Jps -Dapplication.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home -Xms8m

“-Xmx800” 是从哪里来的?我需要将其删除。


4
请注意,对于64位系统,文件名需要为idea64.vmoptions。 - Ittai
@Ittai,对我来说,idea.vmoptions 在 Mac OS 10.9 上也适用于 64 位。 - Koray Tugay
在OS X 10.10.3上使用IntelliJ 14时,我不得不将~/Library/Preferences/IdeaIC14/idea.vmoptions重命名为idea64.vmoptions,以便它能够识别改变,即-Xmx2048m - user711807
在 OS X 10.11 Intellij 15 64 位上,我不得不将 idea64.vmoptions 重命名为 idea.vmoptions 才能使其工作。 - himanshu shekhar
请参阅 http://tomaszdziurko.com/2015/11/1-and-the-only-one-to-customize-intellij-idea-memory-settings 中的IDEA选项调查。 - Grigory Kislin
13个回答

647

当前版本:帮助 | 更改内存设置

更改内存设置

自 IntelliJ IDEA 15.0.4 版本起,您还可以使用:帮助 | 编辑自定义 VM 选项...

这将自动在配置文件夹中创建一个 .vmoptions 文件的副本,并打开一个对话框以进行编辑。


旧版:

IntelliJ IDEA 12 是一款签名应用程序,因此不建议在 Info.plist 中更改选项,因为签名将不匹配,根据您的系统安全设置,您将遇到问题(应用程序将无法运行或防火墙会在每次启动时发出投诉或应用程序将无法使用系统密钥库保存密码)。

作为解决 IDEA-94050 的结果,在 IDEA 12 中引入了一种提供 JVM 选项的新方法:

现在它可以从 ~/Library/Preferences/<appFolder>/idea.vmoptions 获取 VM 选项和系统属性, 来自~/Library/Preferences/<appFolder>/idea.properties

例如,要使用-Xmx2048m选项,您应该将原始的 .vmoptions 文件从 /Applications/IntelliJ IDEA.app/bin/idea.vmoptions 复制到 ~/Library/Preferences/IntelliJIdea12/idea.vmoptions,然后修改 -Xmx 设置。

最终文件应如下所示:

-Xms128m
-Xmx2048m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops

复制原始文件很重要,因为选项不是添加,而是替换。

这样你的自定义选项就会在更新之间得到保留,应用程序文件也将保持不变,使签名检查器满意。


Community Edition:使用~/Library/Preferences/IdeaIC12/idea.vmoptions文件代替。


7
这个文件对我有用:/Users/<user>/Library/Preferences/IdeaIC12/idea.vmoptions。 - PaulG
7
在Mac OS X 10.8.3和IntelliJ IDEA Ultimate 12.1.4上,正确的命令是$ cp -i /Applications/IntelliJ\ IDEA\ 12.app/bin/idea.vmoptions ~/Library/Preferences/IntelliJIdea12/。这与最新的IDEA配置文档http://www.jetbrains.com/idea/webhelp/increasing-memory-heap.html相符,正如michael-m所提到的那样。 - miguno
6
/Applications/IntelliJ\ IDEA\ 13.app/bin/idea.vmoptions复制到~/Library/Preferences/IntelliJIdea13/idea.properties,然后使用vi编辑~/Library/Preferences/IntelliJIdea13/idea.properties - Darius
2
如果您正在使用OSX和PHPStorm,则可以将其复制到~/Library/Preferences/WebIde80/idea.properties(如果您使用的是phpstorm 7,则使用WebIde70) - Mixologic
1
在 AppCode 3.2 中,“idea.vmnoptions”现在被称为“appcode.vmoptions”。您可以将其复制到“〜/Library/Preferences/AppCode32/appcode.vmoptions”(其中还包含一个“idea.vmnoptions”文件),它将起作用。您不必删除“idea.vmnoptions”。 - shmim
显示剩余21条评论

120

[2021年8月更新,因JetBrains UI已更改]

我想分享一个有用的小技巧,可以通过使用"内存指示器"来查看正在使用多少内存,并相应地进行调整。

在任务栏最底部区域右键单击,然后选择“内存指示器”选项。

如何通过右键单击启用内存指示器

它会显示在窗口的右下角。

输入图像描述


11
请确保您启用了“查看”▶“状态栏”。 - TrophyGeek
哇,你使用了-Xmx=8G? - Kedar Mhaswade
有没有办法让它显示从IntelliJ运行的应用程序的内存使用情况,而不是IDE的内存使用情况? - OscarVanL
3
现在可以在「查看」 >「外观」>「状态栏小部件」>「内存指示器」中找到此选项。 - Bloke

14

对于IDEA 13和OS X 10.9 Mavericks,正确的路径是:

原路径:/Applications/IntelliJ IDEA 13.app/Contents/bin/idea.vmoptions

复制到路径:~/Library/Preferences/IntelliJIdea13/idea.vmoptions


1
我在~/Library/Preferences里找不到IntelliJIdea13文件夹。尝试创建它并将文件放入其中,但没有成功。还有其他提示吗? - Bitcoin Cash - ADA enthusiast

11

这只涉及到为编译器增加堆空间,而不是为 IDE 增加。 - Zayenz
3
@Zayenz 假的。这不仅涉及增加构建过程的堆空间,还包括回答问题所需的信息——也就是在“备注”下面写着... "可通过编辑相应的VM选项更改IntelliJ IDEA可用的内存堆大小。根据平台的不同,这些文件可以是..." - 对你来说简短易懂的解释是什么? - Michael M
1
@michael-m 抱歉,我确实看了,但不知怎么错过了那个注释。感谢您纠正我。 - Zayenz

6

关于我正在使用的intellij2018版本,为了获得更好的性能,我使用以下配置

-server
-Xms1024m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=512m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8
-XX:+UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:-TraceClassUnloading
-XX:+TieredCompilation
-XX:SoftRefLRUPolicyMSPerMB=100
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Xverify:none

-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

谢谢Avishek。我一定会在Intellij IDEA 2018上尝试这个配置。 - Gaurav

6

请前往路径 "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.4\bin\idea.exe.vmoptions" 并将大小更改为 -Xmx512m。

  -Xms128m
  -Xmx512m
  -XX:MaxPermSize=250m
  -XX:ReservedCodeCacheSize=64m
  -XX:+UseCodeCacheFlushing
  -ea
  -Dsun.io.useCanonCaches=false
  -Djava.net.preferIPv4Stack=true

希望它能够正常工作。


8
这对于Windows来说是正确的,但不适用于OSX,这也是问题所指的。 - cdeszaq
1
找到了,它在Windows上对我很有帮助!谢谢! - WebComer

6

较新版本的IntelliJ(特别是WebStorm和PhpStorm)通过添加“帮助>>更改内存设置”菜单项,使此更改变得更加容易,该菜单项会打开一个对话框,可以设置内存限制。

menu item to show memory limit setting memory setting dialog


3
若您不介意签名应用程序,您可以更改OSX 10.9。
/Applications/IntelliJ\ IDEA\ 12\ CE.app/bin/idea.vmoptions

2

我在编辑器中编辑了配置文件,然后在更新到最新版本后,下次重启 IntelliJ 就无法打开。在终端中使用 /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea 手动打开 IntelliJ 后,输出给了我有关存储 .vmoptions 副本的位置的额外见解。

➜  ~ /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea
2022-04-21 13:01:55.189 idea[1288:14841] allVms required 1.8*,1.8+
2022-04-21 13:01:55.192 idea[1288:14845] Current Directory: /Users/richardmiles
2022-04-21 13:01:55.192 idea[1288:14845] parseVMOptions: IDEA_VM_OPTIONS = (null)
2022-04-21 13:01:55.192 idea[1288:14845] fullFileName is: /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions
2022-04-21 13:01:55.192 idea[1288:14845] fullFileName exists: /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions
2022-04-21 13:01:55.192 idea[1288:14845] parseVMOptions: /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions
2022-04-21 13:01:55.192 idea[1288:14845] parseVMOptions: /Applications/IntelliJ IDEA.app.vmoptions
2022-04-21 13:01:55.195 idea[1288:14845] parseVMOptions: /Users/richardmiles/Library/Application Support/JetBrains/IntelliJIdea2022.1/idea.vmoptions
2022-04-21 13:01:55.195 idea[1288:14845] parseVMOptions: platform=17 user=1 file=/Users/richardmiles/Library/Application Support/JetBrains/IntelliJIdea2022.1/idea.vmoptions
Invalid maximum heap size: -Xmx2048m -Drun.processes.with.pty=true
Invalid maximum heap size: -Xmx2048m -Drun.processes.with.pty=true
2022-04-21 13:01:55.266 idea[1288:14845] JNI_CreateJavaVM (/Applications/IntelliJ IDEA.app/Contents/jbr) failed: -6

注意当您使用路径时,记得适当引用,就像这样!

vim "/Users/richardmiles/Library/Application Support/JetBrains/IntelliJIdea2022.1/idea.vmoptions"

我的个人问题在于没有为每行提供一个参数! - Richard Tyler Miles

2
在我的机器上,这只在bin/idea.vmoptions中有效,将设置添加到~/Library/Preferences/IntelliJIdea12/idea.vmoptions中会导致IDEA在启动过程中挂起。

请查看我的更新答案。请注意,Preferences 中的 idea.vmoptions 不会添加选项,而是替换它们。因此,您需要从 bin 目录复制原始文件,然后进行修改。 - CrazyCoder

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