一招解决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