天天看點

使用jvisualvm 來優化eclipse啟動

需求:

我們team普遍抱怨eclipse啟動太慢,尤其是在同意安裝了"AppScan"之後,有時候經常啟動eclipse要1分鐘以上,極大的影響了大家的工作熱情。

解決方案概覽:

我們可以使用jvisualvm這是JDK自帶的一個小工具,來監控和管理我們的應用程式(比如eclipse),并且使用它的一些強大的插件,比如"Visual GC",來監控記憶體開銷并且根據經驗進行特定的調優。

啟動”jvisualvm":

它會最後顯示Visual VM的面闆:

使用jvisualvm 來優化eclipse啟動

安裝 ”Visual GC"插件:

這個插件是jvisualvm的插件,它非常強大,可以動态的對指定的程序進行監控,并且來通過統計面闆來分類顯示出各項任務/事件的總時間開銷:

安裝方法: Tool->Plugin->Available Plugins:

使用jvisualvm 來優化eclipse啟動

重新開機Visual VM 之後,就可以看到這個"Visual GC"已經被正确的顯示了。

實戰: 用Visual VM和Visual GC來優化我們的Eclipse啟動:

首先,我們啟動eclipse:

使用jvisualvm 來優化eclipse啟動

我們可以看到這個程序id為32561

我們從Visual VM中找到對應的process id:

使用jvisualvm 來優化eclipse啟動

我們切換到 “Visual GC"标簽頁,它會顯示啟動eclipse的所有測量資料:

使用jvisualvm 來優化eclipse啟動

分析:

從上圖中我們可以很明顯的看出來,主要的時間開銷在以下2方面:

(1)編譯時間有點長,用了3.794秒,這個時間主要是用來校驗eclipse平台本身的位元組碼了,是以我們需要關閉位元組碼校驗,讓啟動時候不會去校驗平台本身(也是java寫的)的位元組碼,為了達到這個目的,我們隻需要在eclipse啟動參數中加上-Xverify:none

如下所示,因為我們用的是Spring Source Tool Suite,是以我們在STS.ini中增加這一行。

使用jvisualvm 來優化eclipse啟動
使用jvisualvm 來優化eclipse啟動

(2)另外一個大問題就是類加載時間,它有2部分組成,因為類有2部分組成,一是eclipse平台自帶的類,二是它所使用的插件的類檔案,我們可以在eclipse啟動的時候關閉不必要的插件加載來減少類加載時間,方法是Preference->General->Startup and Shutdown

使用jvisualvm 來優化eclipse啟動

校驗結果:

現在我們把eclipse關閉并且重新打開,這會啟動一個新的程序,id為32696,我們把這次Visual GC的測量圖和原來的進行比較:

使用jvisualvm 來優化eclipse啟動

從這裡可以看出來,時間被明顯的縮短了,編譯時間從3.794秒縮短到2.155秒,提升百分比為43.1%。而類加載時間從18.424秒縮短到10.208秒,提升百分比為44.6%。

額外步驟:

繼續閱讀