Android Studio修改堆内存大小后不生效的原因排查求助
我之前也碰到过一模一样的情况,明明改了安装目录下的vmoptions文件,结果堆内存还是没变化,总结下来主要有这几个原因和对应的解决办法:
修改了错误的配置文件
Android Studio会优先读取用户目录下的自定义配置文件,而非安装目录里的默认文件。以Windows系统为例,这个生效文件的路径一般是:C:\Users\<你的用户名>\.AndroidStudio<版本号>\config\studio64.exe.vmoptions
你手动修改安装目录的文件,AS根本没在读取它,自然不会生效。没有通过官方入口修改配置
最稳妥的方式是直接在AS内打开生效配置:点击顶部菜单栏的Help->Edit Custom VM Options,弹出的文件就是AS实际加载的配置。把里面的-Xms和-Xmx改成适配你8G内存的值(比如建议设为-Xms1024m -Xmx4096m),保存后完全重启AS(要把后台的studio进程也关掉)。权限问题导致修改未保存
如果直接修改安装目录下的vmoptions文件,可能因为没有管理员权限,修改后的内容根本没保存成功。右键编辑器选择「以管理员身份运行」再修改,或者直接用上面说的官方入口修改更省心。没有完全重启AS
有时候你点了重启,但AS的后台进程还在运行,新配置没加载。打开任务管理器,找到所有studio64.exe进程,全部结束后再重新打开AS。
验证配置是否生效的方法:打开AS后,点击Help -> About,在弹出窗口的「Memory Usage」部分查看最大堆内存;或者开启右下角的内存指示器(在View -> Appearance里勾选Memory Indicator),直观查看堆内存上限。
另外提一句,你的配置里-XX:MaxPermSize=1024m在高版本AS(基于Java 8+)里已经失效了,PermGen被Metaspace取代,可以改成-XX:MaxMetaspaceSize=1024m,不过这不是堆内存不生效的原因。
内容的提问来源于stack exchange,提问作者miosz

