一招解决IDEA启动慢的困扰

前言

电脑配置还不错,但是IDEA用了一段时间之后变得非常卡,启动要好几分钟,实在不能忍受。

解决办法

1.打开idea的安装位置,进入bin目录下,找到idea64.exe.vmoptions 配置文件

编辑配置文件,笔者修改的配置内容01如下:

server
-Xms2048m
-Xmx2048m
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

修改后保存,退出。重新打开IDEA,就能体验到飞一般的感觉了!


补充:

有同事尝试后,未生效,解决方法如下:

直接在IDEA中修改配置信息,打开 idea64.exe.vmoptions 配置文件,在Help -> Edit Custom VM Option...中设置,  如图:

修改配置,参考上图。

配置详解

  • -Xms 是最小启动内存参数

  • -Xmx 是最大运行内存参数

  • -XX:ReservedCodeCacheSize 保留代码占用的内存容量参数

IDEA默认启动配置主要考虑低配置用户,参数不高(默认最低128m,最高512m),导致启动慢,运行不流畅。通常我们工作使用的电脑至少在16G以上,所以可以通过修改最小启动内存参数、最大运行内存参数来提高IDEA的速度。

这里需要解释一下Xmx和Xms

Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的,在JVM中堆之外的内存称为非堆内存(Non-heap memory)。

简单的说就是:堆是java代码可及的内存,开发人员写的东西都是堆分配的内存(底层实现除外)。而非堆内存则是JVM自己用的,比如JVM内部处理或优化,垃圾处理,常数池等。

堆的内存分配用-Xms和-Xmx


堆的内存分配用-Xms和-Xmx:
-Xms分配堆最小内存,默认为物理内存的1/64;-Xmx分配最大内存,默认为物理内存的1/4。

非堆内存分配用-XX:PermSize和-XX:MaxPermSize:
-XX:PermSize分配非堆最小内存,默认为物理内存的1/64;-XX:MaxPermSize分配最大内存,默认为物理内存的1/4。

建议

电脑运行内存为8G的建议

-server
-Xms512m
-Xmx1024m
-XX:ReservedCodeCacheSize=300m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

电脑运行内存为16G的建议

server
-Xms1024m
-Xmx2048m
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
posted @ 2021-12-15 17:40  nicholasm4  阅读(2531)  评论(0编辑  收藏  举报