修改 IntellJ/bin/idea.exe.vmoptions (记得备份哦亲)修改成
-Xms512m
-Xmx512m
-Xmn164m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-Xverify:none
-Xnoclassgc
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=85
-ea
-Dsun.awt.keepWorkingSetOnMinimize=true
-Dsun.awt.keepWorkingSetOnMinimize=true 可以让IDEA最小化到任务栏时依然保持以占有的内存,当你重新回到IDEA,能够被快速显示,而不是由灰白的界面逐渐显现整个界面,加快回复到原界面的速度。
-Xverify:none 关闭Java字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装入类,缩短了启动时间。
-XX:+UseParNewGC 使用并行收集算法。
加上一个很重要的参数
-XX:PermSize=128m
默认的PermSize 只有64m,这个对于idea这么大的java进程来说肯定是不够的。上面设置的MaxPermSize虽然很大,但是发现就算原来的64m世道到了99% 还是没有扩容到max的值。而且使用默认的64m,FGC的频率很高。这个从jstat中可以看到。
进程号 2660 是没加PermSize参数的gc情况,可以看到FGC很频繁,YGC只有1次,而且启动速度确实不快。进程号4388 是加了参数的gc情况,可以看到YGC的频率上去了,FGC 一次也没有,总体的gc时间少了不了。可以从启动速度中明显感觉到。