大概2015年的时候,写过一篇名为《合理使用Intellij Idea,提高开发效率,避免内存溢出》的博文,简单介绍了自己在使用idea过程中解决操作界面卡顿等性能问题的方法。意外的是,近一年来百度来路每天都有二三十个搜idea内存优化找到上面提到的文章,可能国内最近使用idea的用户越来越多了吧。

个人猜测,可能是因为当时版本的idea系列安装时并不会提示用户该软件有64bit的入口,而且安装后的快捷方式默认都是32bit,所以大部分用户都是直接使用32bit做开发,而且很多用户怨声载道。而近一年的版本已经做了改进,如果系统是64bit,默认有复选框提示生成32bit、64bit的快捷方式,这样一来,稍微有点计算机基础的用户,可能都会选择使用64bit作为入口了。

随之而来的,可能是对于内存的调优,但稍有不慎,可能出现Failed to create JVM:error code -1。

网上大部分介绍是说没有配置JAVA_HOME,当然如果是非idea用户,真有可能忽略了此步骤,但如果本身就是Java开发人员,基本可以忽略这个可能性(当然是在自己确认无误的情况下)。接下来遇到这样的问题,就不能看错误提示表象了,可能是改了配置,配置参数不对或者内存不够,因为初始化最大内存750,作为开发人员,基本也可以忽略这个了。所以,只有一种情况,配置不对。

最新版的配置参数有所缩减,移除了-XX:MaxPermSize等配置项,基本如下(64bit)

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

按我个人习惯

修改-Xmx 750m为-Xmx 3750m
修改-XX:ReservedCodeCacheSize=240m为-XX:ReservedCodeCacheSize=1240m

问题就出在这里,如果电脑内存偏低,ReservedCodeCacheSize配置又超大,启动也就失败了,所以,遇到问题我们首先减小该值再尝试即可。