九大工具助你玩轉Java效能優化

importnew發表於2014-07-10

  之前我寫過一篇關於5個工具幫助寫出更好的Java程式碼的文章。合適的工具可以改進我們的程式碼,並且提高開發效率。在IDR解決方案中,我們一直在找一些方法來改進我們的程式碼。但最近,我們在考慮改進PDF HTML5轉換器Java PDF類庫程式碼時,發現最近我們的關注點已經開始轉換到如何提升Java效能。

Java效能優化工具可以幫助你改進你的Java程式碼。

Java效能優化工具可以幫助你改進你的Java程式碼。

  在這篇文章中,我會帶著大家一起看一下9個可以幫助我們優化Java效能的工具。有一些我們已經在IDR Solutions中使用了,而另外一些有可能在個人專案中使用。

 NetBeans Profiler

  NetBeans profiler是一個NetBeans IDE外掛,主要為NetBeans IDE提供效能分析相關的功。NetBeans IDE是一個開源的整合開發環境。它很好地支援所有Java應用型別(包括Java SE、JavaFX、Java ME、Web、EJB和移動應用)的開發。

  這個效能分析器包含了諸如CPU、記憶體和執行緒效能分析功能,並且提供了一些用於基本JVM監控的附加工具和功能。對於需要解決記憶體和效能相關問題的開發者非常有用。

 JProfiler

  JProfiler我之前的文章中有提及。同樣,它也是一個很好的Java效能分析工具。JProfiler集CPU、記憶體和執行緒效能分析於一體,可以用於分析效能瓶頸、記憶體洩漏、CPU負載和解決執行緒相關的問題,並且支援本地效能分析(分析與JProfiler軟體安裝在同一臺機的應用)和遠端效能分析(它可以分析遠端沒有安裝JProfiler機器上的應用),這一點對開發人員非常有用。

  JProfiler由ej-technologies GmbH開發的商業授權的Java效能分析工具,主要為Java EE和Java SE應用所設計。

 GC Viewer

GC viewer截圖

GC viewer截圖

  GC Viewer可以(從主頁Github)免費獲取。GC Viewer是一個開源工具,可以對vmflags -verboase:gc和-Xloggc:等Java VM選項產生的資料進行視覺化分析。GC Viewer可以用於計算GC(垃圾回收)相關的效能資料記錄,包括吞吐、累積暫停、最長時間的暫停等等。當你想要通過改變生成大小和設定初始堆大小來調整某個特定應用的GC時,它尤其有用。

  GC Viewer是一個開源工具,由Tagtraum Industries Incorporated開發。這是一個很小的初創軟體諮詢公司,位於羅利、北卡羅萊納州,由成立於1999年的非盈利專案Tagtraum Industries在2004年創立。

 VisualVM

  VisualVM 是一個由NetBeans平臺派生的工具,遵循模組化的架構思想。這意味著可以通過外掛方便的進行擴充套件。

  Visual VM允許你獲取Java程式的詳細資訊,只要它在一個Java虛擬機器(JVM)上執行即可。生成的資料可以由JDK工具生成和讀取,多個Java程式的所有資料和資訊都可以很方便地進行檢視,包括本地和遠端的執行程式。同時可以儲存JVM軟體的資料快照,把資料儲存在本地,方便以後進行檢視或者和其他人一起分享。

  Visual VM可以進行CPU效能分析、記憶體效能分析,進行GC(譯者注:可以進行強制呼叫GC)、儲存快照等。

 Patty *Beta

Patty in action (圖片來源於http://patty.sourceforge.net.)

Patty in action (圖片來源於http://patty.sourceforge.net.)

  “Patty” 專案 是一個開源專案,可以從Source Forge下載。它致力於為Java 1.5.0和更高版本的虛擬機器提供效能分析工具。與其他效能分析工具不同之處在於,它專注效能分析,並且允許使用者在執行時開啟和關閉效能分析功能。

  目前Patty正處於beta版階段,但隨著更多強大的功能如方法執行、程式碼覆蓋、執行緒競爭(Thread Contention)分析的加入,Patty可以用於(記憶體、CPU等)效能調優,並且可以將資訊通過TCP/IP Socket傳送到其他電腦上。Patty有著易用的GUI,可以用於分析堆。還可以在Java編譯流程中的準備階段,對應用程式執行時對class進行監測(instrument)和取消監測(de-instrument)。

 JRockit——任務管理

  JRockit 是一個原由Appeal Virtual Machines開發的專有Java虛擬機器。2002年由BEA Systems收購,之後從Sum Microsystems處轉到Oracle。

  Oracle的JRockit是一套完整的Java SE解決方案,包含了一個高效能JVM、效能分析、監控和排錯工具。可用於預測Java程式中的延遲。

  現在,JRockit打包有一系列的稱為JRockit任務控制(JRockit Mission Control)的工具。這些工具包括:一個用於管理的控制檯(console,譯者注:此console跟終端不一樣,是特指管理後臺系統),進行GC資料視覺化和其他的一些效能統計。它同樣可以作為執行時效能分析工具Runtime Analyzer來使用,也可以分析記憶體問題。

  Eclipse Memory Analyzer

Memory Analyzer (MAT) 可以在Eclipse IDE中找到.

Memory Analyzer (MAT) 可以在Eclipse IDE中找到.

  Eclipse記憶體分析器(Eclipse Memory Analyzer)是一個可以幫助你找到記憶體洩漏和減少記憶體損耗的Java堆分析器。它更適合作為一個分析Java堆疊和計算大小的工具集,也可以用於監測記憶體洩漏和反模式帶來的記憶體損耗。

 Java Interactive Profiler

  JIP是一個用Java開發的高效能、低損耗效能分析器。基於BSD許可協議釋出,可以從Source Forge下載。使用JIP的開發者可以在VM執行時開啟和關閉效能分析,並且可以過濾類和包、控制輸出。

 Profiler4J

  Profiler4j 是一個專注於CPU效能分析的工具。它具有友好的使用者介面,支援遠端效能分析,並且支援動態修改配置。Profiler4j值得關注的特性有:基於動態位元組碼增強方式,這就表明它不需要任何本地的庫和外部可執行檔案支援。更重要的是,它完全由Java編寫,可以提供圖形化的呼叫圖形資訊、呼叫樹結構、記憶體監控和類列表,支援細粒度配置檔案。它基於Apache License v2.0協議釋出,可以從Source Forge上下載

  希望你覺得這些工具有用。

  你使用什麼工具來改進你的程式碼,請告訴我們吧!

  這篇文章是我們”Java文章索引“系列的一部分。在這些文章中,我們致力於深入Java和JavaFx。看一下吧!

  如果你是第一次看這個系列,或者想要在我們釋出新文章和更新時,得到通知,你可以通過社交媒體來關注(Twitter, FacebookGoogle+)或者Blog RSS

  原文連結: idrsolutions 翻譯: ImportNew - 陳 曉舜

相關文章