原文: https://blog.csdn.net/qq_27093465/article/details/52918873

idea 有个配置文件,可以设置内存大小的,就跟咱的 jvm 的内存里面的堆大小,栈大小等等,可以设置的,而且设置了之后,你这个的性能就会得到提升。具体看下面怎么修改。

先说所要修改的文件 idea.vmoptions 的位置,这个不同的平台,估计名称可能有些差别。mac 的如下图

IDEA 修改内存大小,使得idea运行更流畅 - 图1

具体怎么找到这个地方的,刚刚使用 mac 的估计不会,老手就会啦,

option + cmd + P 隐藏或显示 “访达” 窗口中的路径栏

这个就是显示我上图的地步的那个路径,然后你就可以像 Windows 那样点点点到这个位置啦。

IDEA 修改内存大小,使得idea运行更流畅 - 图2

这个是 idea 的 17 版本的配置文件里面的信息,默认的设置这么简单,就这么几个。

说明:
1.Xms128m, 最小内存
2.Xmx750m, 最大内存
3. 预留代码缓存的大小
4.UseConcMarkSweepGC, 设置年老代为并发收集

默认值设置的太小啦,所以,你使用 idea 跑稍微大点的项目,你的电脑就会像拖拉机一样,嗡嗡嗡的响,哎哟我新买的 macpro 啊,启动个多模块的 maven 项目,就跟拖拉机似的,开始响啦,搞得同桌笑我买的是不是真的啊。尴尬啦。

修改后的配置

IDEA 修改内存大小,使得idea运行更流畅 - 图3

因为我电脑是 16g 的内存,现在 8g 算是标配吧,最小一个 g,最大 2 个 g。下面的代码缓存也给一个 g。

修改的地方,就修改啦这么三个地方,至于为啥设置 2 个 g 最大,因为我看啦一篇文章,他做过测试啦,你设置的再大就浪费啦,但是系统默认的 750m 也太小了,项目大的话,分分钟就卡啦,这就跟 jvm 的内存设置似的,太大的话也不好,太小的话也不好。找个平衡的设置,是不错的。

设置完成之后,需要重启一下 idea,然后就会看到下面的变化。注意右下角。

IDEA 修改内存大小,使得idea运行更流畅 - 图4

这个地方怎么弄出来?

IDEA 修改内存大小,使得idea运行更流畅 - 图5

新增更新:idea 升级之后,目前是 2021.2 版本,这个控制内存使用显示状态的地方换了,具体看下图。

IDEA 修改内存大小,使得idea运行更流畅 - 图6

在我没修改之前,这地方是 750m 的现在修改之后就成 2 个 g 啦,现在跑原来呢个嗡嗡嗡响的项目,现在也不响啦,电脑也不发烫啦。

有老铁问,内存 8g 的怎么着,我也不确定啊。我这放 2 张图。

IDEA 修改内存大小,使得idea运行更流畅 - 图7

这个是 16g 内存的电脑的内存使用实时图,可以看出来内存压力很小的,基本上也就是四分之一。

IDEA 修改内存大小,使得idea运行更流畅 - 图8

这个是 8g 内存的电脑的内存实时使用图,可以看出来内存压力也不大。也就差不多百分之五十吧。

解释一下:

不要看这 2 张图,一个 16g 的内存,但是已经使用了 12 个 g 啦,但是 8 个内存的电脑也已经使用了 6.6,约等于 7 吧。这么看的话,内存使用率基本上都是百分之八九十的样子。

这个是正常的现象,因为内存本来就是给用的,你要是空着一大部分都不使用的话,不就浪费啦吗,所以,这个内存的使用率,不会因为你刚刚的那个配置而变化吧,主要是看那个内存的压力,2 个图的内存压力都不大。还可以接受吧。

可以在如下图这个菜单的地方找到这个设置

IDEA 修改内存大小,使得idea运行更流畅 - 图9

上面这个截图使用的 gc 还是旧版的 cms gc,下面贴上使用 g1gc 的配置,文字版,我的版本是 2021.2

  1. -Xms1024m
  2. -Xmx2048m
  3. -XX:ReservedCodeCacheSize=1024m
  4. -XX:+UseCompressedOops
  5. -Dfile.encoding=UTF-8
  6. -XX:SoftRefLRUPolicyMSPerMB=50
  7. -ea
  8. -XX:CICompilerCount=2
  9. -Dsun.io.useCanonPrefixCache=false
  10. -Djava.net.preferIPv4Stack=true
  11. -Djdk.http.auth.tunneling.disabledSchemes=""
  12. -XX:+HeapDumpOnOutOfMemoryError
  13. -XX:-OmitStackTraceInFastThrow
  14. -Djdk.attach.allowAttachSelf
  15. -Dkotlinx.coroutines.debug=off
  16. -Djdk.module.illegalAccess.silent=true
  17. -Xverify:none
  18. -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
  19. -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
  20. -Dide.no.platform.update=true
  21. -Dsun.io.useCanonCaches=false
  22. -XX:ReservedCodeCacheSize=512m
  23. -XX:+UseG1GC
  24. -Dsplash=true
  25. -Dtoolbox.notification.token=97Umdj0YLuibBsUF2oZWyny6WLznUJE8ci9tfLqB-q4=
  26. -Dtoolbox.notification.portFile=/Users/fang/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.4746.92/IntelliJ IDEA.app.vmoptions.port
  27. -Didea.plugins.path=/Users/fang/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/212.4746.92/IntelliJ IDEA.app.plugins