2012年2月20日

直達 Java 虛擬機器之 Eclipse 調校優化篇

在書店的角落發現一本剛出版(2012/1月)的「直達Java虚擬機器-JVM進階與應用」,難得有進階的 Java 中文書,作者還是華人(很可惜不是台灣人),手癢就帶了一本回家。

這本書是譯自簡體版「深入理解Java虚拟机:JVM高级特性与最佳实践」,對於需要調校 Java EE 系統效能的開發者,算是一本實用的參考書。有些內容像是自己編譯 Open JDK 也許用不上,但是在更深入認識 JVM 與透過工具監視、調校 Java 程式的部份,應該可以幫助讀者節省不少研究的時間。

讀到第五章「調校優化案例分析與實戰」,作者蠻有趣地用了 Eclipse 的啟動時間最佳化當範例,剛好我最近手邊的專案開始用 Gradle + Eclipse 開發,又開始面臨肥大 Eclipse 效能不彰問題;記得每一次筆電砸重金升級記憶體,都是為了讓 Eclipse 跑快點。

書中作者詳細說明從一開始啟動 Eclipse 需要15秒,接著一步步分析、調整設定,改善到只需要7秒的時間。而其中最關鍵的就是記憶體與垃圾回收(GC,Garbage Collection)配置;GC 相當耗時,但是在記憶體充足的情況下, 根本用不到那麼多次 GC 動作。如何分析哪些動作消耗多少時間,是這一章主要在講的內容。

這本書的範例程式及設定無法從網路取得,要自己打字挺麻煩,因此我將參考書本最終範例修改的 eclipse.ini 提供給大家參考。

https://gist.github.com/1868507
(和書本範例有些差異,可自行依照不同電腦給予最佳化配置)

4 則留言:

  1. "對Java程式師來說,Java虛擬機器是既熟悉又神秘,很難抑制自己探究它的衝動。"
    但開發專案已夠累人了....
    lyhcode 多分享就好了

    回覆刪除
  2. 用我本機測試從原本的62秒變成13秒,真的好快。

    做法:
    1-eclipse.ini 的內容可以直接複製lyhcode 的範例貼上
    2-startup/launcher.library保留來原本的設定
    -startup
    plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502

    回覆刪除
  3. 希望大家可以多藉由參與技術研究分享補充熱血 : )

    回覆刪除
  4. 記憶體上16G、硬碟上SSD...還可以更快 : )

    回覆刪除

lyhcode by lyhcode
歡迎轉載,請務必註明出處!