我的Eclipse近幾天運行時速度奇慢,具體表現為:
1、只要ECLIPSE啟動后,硬盤燈就狂閃,不停的讀盤;
2、發布TOMCAT經常在0%;
3、偶爾CPU占滿;
網上講優化的文章無數,但是總是有用的卻很少,大部分是轉載甚至是抄襲的。在借鑒各個文章的做法並不斷嘗試后,我的問題終於解決了。
1、啟動參數的優化;
我的啟動參數為:
-Xms976m -Xmx976m -XX:PermSize=128m -XX:MaxPermSize=128m -Xmn168m -XX:+DisableExplicitGC
其中XX:PermSize和XX:MaxPermSize是必須的,僅僅設置Xmx,經常出現ECLIPSE內存溢出的情況;
減少jvm內存回收引起的eclipse卡的問題 :
這個主要是jvm在client模式,進行內存回收時,會停下所有的其它工作,帶回收完畢才去執行其它任務,在這期間eclipse就卡住了。所以適當的增加jvm申請的內存大小來減少其回收的次數甚至不回收,就會是卡的現象有明顯改善。
主要通過以下的幾個jvm參數來設置堆內存的:
| -Xmx512m | 最大總堆內存,一般設置為物理內存的1/4 |
| -Xms512m | 初始總堆內存,一般將它設置的和最大堆內存一樣大,這樣就不需要根據當前堆使用情況而調整堆的大小了 |
| -Xmn192m | 年輕帶堆內存,sun官方推薦為整個堆的3/8 |
| 堆內存的組成 | 總堆內存 = 年輕帶堆內存 + 年老帶堆內存 + 持久帶堆內存 |
| 年輕帶堆內存 | 對象剛創建出來時放在這里 |
| 年老帶堆內存 | 對象在被真正會回收之前會先放在這里 |
| 持久帶堆內存 | class文件,元數據等放在這里 |
| -XX:PermSize=128m | 持久帶堆的初始大小 |
| -XX:MaxPermSize=128m | 持久帶堆的最大大小,eclipse默認為256m。如果要編譯jdk這種,一定要把這個設的很大,因為它的類太多了。 |

2、啟動插件優化:
windows - preference- general - startup and shutdown 里,只保留第1、3、4,其他全部取消,保留的為:
Usage DAta Gathering Plug-in。
Equinox Provisioning Platform Automatic Updata Support。
WTP Webservice UI Plug-in。
如圖:

4、關閉驗證
windows - preference-Validation 全部取消,只保留Manual 列;
在工程上右鍵-Validation ,同樣全部取消,只保留Manual列,如果需要檢查代碼是否有錯,可以在代碼文件上右鍵,手動驗證。
如圖:

5、清理工程文件
刪除工作空間目錄下.metadata\.plugins\org.eclipse.epp.usagedata.recording目錄里的所有文件,主要要保留這個目錄,只刪除目錄下文件即可
在經過以上操作后,我的Eclipse無論是啟動還是發布或者是編譯工程,速度都提升了不少,特別是啟動。而且運行起來相對很流暢,閃退、假死和吃內存等一系列問題得到基本解決。
以上僅供參考大家參考,歡迎反饋問題和建議,謝謝。
更多深度優化請參考:http://chaoxz2005.blog.163.com/blog/static/15036542013411105519685/
