当然 卡顿,能有条件,尽量加强电脑的配置了,比如 固态硬盘 和 加内存条
eclipse 如果启动慢,还可以接收。 可是如果是 保存的时候卡顿, 有时候会 卡顿 3秒-5 秒的,感觉到写代码特别的不顺畅,这怎么玩?
我的eclipse就是 保存的时候卡顿。 其实项目也不大,就是文件多,目录结构多而已。
另一个项目, 使用 eclipse ,不需要配置什么的,保存一点都不卡顿。
可以参考网上 网友的 解决方案
可是我试过了, 最多可以提高 eclipse 启动的速度,编译速度,可是保存还是会 卡顿的。
很多方案都说只需要 在 eclipse.ini 的 配置 -Xms , -Xmx 即可。 我配置了 可是发现还是不行的。
-Xms512m
-Xmx2048m
解决方案
刚好看了一下 《深入理解JAVA虚拟机》里面有一个例子是 调优 eclipse卡的问题的。
加入了 -XX:MaxPermSize 发现解决了 这个问题, 如果不加入 发现保存就卡了。 书上说是 默认的 MaxPermSize 太小了或者是 该eclipse 不认识 MaxPermSize ,忽略掉了 加上去即可。
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。(还有一说:MaxPermSize缺省值和-server -client选项相关,
-server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32m。这个我没有实验。)
上面错误信息中的PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。还没有弄明白PermGen space是属于非堆内存,还是就是非堆内存,但至少是属于了。
XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。
说说为什么会内存益出:
(1)这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同。
(2)GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。
这种错误常见在web服务器对JSP进行pre compile的时候。
设置永久代最大容量
-XX:MaxPermSize=768M
注意但是在jdk8中已经没有Permanent 了, 因此 上面的配置 无效。
可以尝试在win系统下 JVM默认client 模式, 建议改为server 模式,client 模式只是启动比较快而已,但是server 对于长久运行的程序会更稳定
因为一保存就会进行自动编译,当项目文件数量比较多的时候,电脑的IO处理速度就跟不上了,那么就就是IO的问题。
因此有条件就换机械硬盘。 同时配置 过滤掉某些文件或者文件夹下面的所有文件 不需要编译,或者配置将其忽略,不将其认为是项目的文件。
让eclipse 编译的时候将其忽略即可。
项目文件数量太多的产生的问题就算使用 idea 也是会出现类似的问题,类似 提示 indexing 很久。。。项目才全部编译好。每次启动或者编译就在indexing 半天。 参考 https://my.oschina.net/ouminzy/blog/3102949
当然了 在设置上面之前请确保您的项目,设置了忽略 校验的设置,和 忽略 编译校验的 设置
。这两个设置比设置 eclipse的ini 配置文件还要重要。
设置方式 右键项目-- propertise -- builder 配置和 validate 配置
比如我的
如果 是在没办法,保存卡顿,其实主要是保存的时候 会编译项目 ,卡住了。
那么我们就可以关掉 自动编译 功能
关掉方法: project --> Build Automatically