在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢?
原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),这就是造成我们使用IDEA时卡顿的根本原因。比如我这台电脑,明明是16GB的运行内存,但是IDEA默认给我分配的使用上限是1GB,当我运行大量代码时自然而然的就会产生卡顿。
我们可以通过显示内存使用情况来查看当前项目占用的内存大小。
可以看到当前我的程序占用了690MB的内存,而上限是1024MB(在性能突发时完全承受不住)。我们可以通过进入IDEA的设置来更改这些配置。
具体步骤:(三步)
1. 选择顶部导航栏中的Help,然后点击Edit Custom VM Options(自定义虚拟机内存)。
2. 接下来我们将会看到这个界面:
-Xmx1024m // 最大内存上限为:1024MB(1GB)
-Xms256m // 初始内存分配大小为:256MB
-XX:ReservedCodeCacheSize=128m //代码缓冲区大小:128MB
-XX:+UseG1GC
我们对其进行适当的修改(具体根据个人电脑配置),并保存文件:
-Xmx4096m
-Xms4096m
-XX:ReservedCodeCacheSize=256m
-XX:+UseG1GC
3. 缓存清理(使新配置生效):
选择 File ---> Invalidate Caches(清理无效的缓存)
保持默认的选项,选择确定清理缓存并重启IDEA (结束)。
好了,最后我们来看一下重启之后的IDEA效果~没错,很流畅
另外说一句,JetBrains系列的产品都可以通过这种设置来解决卡顿的问题。没错,包括PyCharm、Android Studio、WebStorm等,其余参数说明如下:
参数说明:
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
+XX:AggressiveHeap 使 Xms 失去意义。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。