解决eclipse 保存卡顿的问题

转:https://blog.csdn.net/weixin_33795743/article/details/86024171

eclipse 如果启动慢,还可以接收。 可是如果是 保存的时候卡顿, 有时候会 卡顿 3秒-5 秒的,感觉到写代码特别的不顺畅,这怎么玩?

我的eclipse就是 保存的时候卡顿。 其实项目也不大,就是文件多,目录结构多而已。

另一个项目, 使用 eclipse ,不需要配置什么的,保存一点都不卡顿。

可以参考网上 网友的 解决方案

http://baijiahao.baidu.com/s?id=1563222228113375&wfr=spider&for=pc

可是我试过了, 最多可以提高 eclipse 启动的速度,编译速度,可是保存还是会 卡顿的。

很多方案都说只需要 在 eclipse.ini 的 配置 -Xms , -Xmx 即可。 我配置了 可是发现还是不行的。

 
  1. -Xms512m

  2. -Xmx2048m

解决方案

刚好看了一下 《深入理解JAVA虚拟机》里面有一个例子是 调优 eclipse卡的问题的。

加入了 -XX:MaxPermSize 发现解决了 这个问题, 如果不加入 发现保存就卡了。 书上说是 默认的 MaxPermSize 太小了或者是 该eclipse 不认识 MaxPermSize ,忽略掉了 加上去即可。

 
  1. 非堆内存分配

  2.  
  3.  
  4. JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。(还有一说:MaxPermSize缺省值和-server -client选项相关,

  5. -server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32m。这个我没有实验。)

  6. 上面错误信息中的PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。还没有弄明白PermGen space是属于非堆内存,还是就是非堆内存,但至少是属于了。

  7. XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。

  8. 说说为什么会内存益出:

  9. (1)这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同。

  10. (2)GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。

  11. 这种错误常见在web服务器对JSP进行pre compile的时候。

 
  1. 设置永久代最大容量

  2. -XX:MaxPermSize=768M

下面是我的 eclipse.ini 配置文件,大家尽量使用 新版本 jdk 和 eclipse了

 
  1. -startup

  2. plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar

  3. --launcher.library

  4. plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133

  5. -product

  6. org.eclipse.epp.package.jee.product

  7. -showsplash

  8. org.eclipse.epp.package.common

  9. --launcher.defaultAction

  10. openFile

  11. --launcher.defaultAction

  12. openFile

  13. --launcher.appendVmargs

  14. -vmargs

  15. -Dosgi.requiredJavaVersion=1.8

  16. -Dosgi.instance.area.default=@user.home/eclipse-workspace

  17. -XX:+UseG1GC

  18. -XX:+UseStringDeduplication

  19. -Dosgi.requiredJavaVersion=1.8

  20. -Xms512m

  21. -Xmx2048m

  22. -XX:MaxPermSize=768M

或者 按照 上说的

 
  1. -Xms2048m

  2. -Xmx2048m

  3. -XX:PermSize=1024M

  4. -XX:MaxPermSize=1024M

  5. -Xverify:none

  6.  
  7. 由上述分析可以得出结论: Eclipse启动时,

  8. Full GC大多数是由于老年代容量扩展而导致的,

  9. 由永久代空间扩展而导致的也有一部分。 为了避

  10. 免这些扩展所带来的性能浪费, 我们可以把-Xms

  11. 和-XX: PermSize参数值设置为-Xmx和-XX:

  12. MaxPermSize参数值一样, 这样就强制虚拟机在

  13. 启动的时候就把老年代和永久代的容量固定下

  14. 来, 避免运行时自动扩展。

  15.  
  16. Eclipse使用者甚多, 它的

  17. 编译代码我们可以认为是可靠的, 不需要在加载

  18. 的时候再进行字节码验证, 因此通过参数-

  19. Xverify: none禁止掉字节码验证过程也可作为一

  20. 项优化措施。 加

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值