解決eclipse 保存卡頓的問題

固然 卡頓,能有條件,儘可能增強電腦的配置了,好比 固態硬盤 和 加內存條java

 

eclipse 若是啓動慢,還能夠接收。 但是若是是 保存的時候卡頓, 有時候會 卡頓 3秒-5 秒的,感受到寫代碼特別的不暢,這怎麼玩?web

個人eclipse就是 保存的時候卡頓。 其實項目也不大,就是文件多,目錄結構多而已。服務器

另外一個項目, 使用 eclipse ,不須要配置什麼的,保存一點都不卡頓。app

能夠參考網上 網友的 解決方案eclipse

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

但是我試過了, 最多能夠提升 eclipse 啓動的速度,編譯速度,但是保存仍是會 卡頓的。性能

不少方案都說只須要 在 eclipse.ini 的 配置 -Xms , -Xmx 便可。 我配置了 但是發現仍是不行的。優化

-Xms512m
-Xmx2048m

解決方案

恰好看了一下 《深刻理解JAVA虛擬機》裏面有一個例子是 調優 eclipse卡的問題的。ui

加入了 -XX:MaxPermSize 發現解決了 這個問題, 若是不加入 發現保存就卡了。 書上說是 默認的 MaxPermSize 過小了或者是 該eclipse 不認識 MaxPermSize ,忽略掉了 加上去便可。spa

非堆內存分配


 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

下面是個人 eclipse.ini 配置文件,你們儘可能使用 新版本 jdk 和 eclipse了

-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms512m
-Xmx2048m
-XX:MaxPermSize=768M

或者 按照 上說的

 

-Xms2048m
-Xmx2048m
-XX:PermSize=1024M
-XX:MaxPermSize=1024M
-Xverify:none

由上述分析能夠得出結論: Eclipse啓動時,
Full GC大多數是因爲老年代容量擴展而致使的,
由永久代空間擴展而致使的也有一部分。 爲了避
免這些擴展所帶來的性能浪費, 咱們能夠把-Xms
和-XX: PermSize參數值設置爲-Xmx和-XX:
MaxPermSize參數值同樣, 這樣就強制虛擬機在
啓動的時候就把老年代和永久代的容量固定下
來, 避免運行時自動擴展。

Eclipse使用者甚多, 它的
編譯代碼咱們能夠認爲是可靠的, 不須要在加載
的時候再進行字節碼驗證, 所以經過參數-
Xverify: none禁止掉字節碼驗證過程也可做爲一
項優化措施。 加

 

 

固然了 在設置上面以前請確保您的項目,設置了忽略 校驗的設置,和 忽略 編譯校驗的 設置

。這兩個設置比設置 eclipse的ini 配置文件還要重要。 

設置方式  右鍵項目-- propertise -- builder  配置和 validate 配置

 

好比個人

 

 

 

若是 是在沒辦法,保存卡頓,其實主要是保存的時候 會編譯項目 ,卡住了。

那麼咱們就能夠關掉 自動編譯 功能

關掉方法:   project   -->  Build Automatically 

相關文章
相關標籤/搜索