Java性能優化的9大工具

在這篇文章中,我會帶着你們一塊兒看一下9個能夠幫助咱們優化Java性能的工具。有一些咱們已經在IDR Solutions中使用了,而另一些有可能在我的項目中使用。html

NetBeans Profiler

NetBeans profiler是一個NetBeans IDE插件,主要爲NetBeans IDE提供性能分析相關的功。NetBeans IDE是一個開源的集成開發環境。它很好地支持全部Java應用類型(包括Java SE、JavaFX、Java ME、Web、EJB和移動應用)的開發。java

這個性能分析器包含了諸如CPU、內存和線程性能分析功能,而且提供了一些用於基本JVM監控的附加工具和功能。對於須要解決內存和性能相關問題的開發者很是有用。git

JProfiler

JProfiler 在我以前的文章中有說起。一樣,它也是一個很好的Java性能分析工具。JProfiler集CPU、內存和線程性能分析於一體,能夠用於分析性能瓶頸、內存泄漏、CPU負載和解決線程相關的問題,而且支持本地性能分析(分析與JProfiler軟件安裝在同一臺機的應用)和遠程性能分析(它能夠分析遠程沒有安裝JProfiler機器上的應用),這一點對開發人員很是有用。github

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

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年創立。oracle

VisualVM

VisualVM 是一個由NetBeans平臺派生的工具,遵循模塊化的架構思想。這意味着能夠經過插件方便的進行擴展。eclipse

Visual VM容許你獲取Java程序的詳細信息,只要它在一個Java虛擬機(JVM)上運行便可。生成的數據能夠由JDK工具生成和讀取,多個Java程序的全部數據和信息均可以很方便地進行查看,包括本地和遠程的運行程序。同時能夠保存JVM軟件的數據快照,把數據保存在本地,方便之後進行查看或者和其餘人一塊兒分享。模塊化

Visual VM能夠進行CPU性能分析、內存性能分析,進行GC(譯者注:能夠進行強制調用GC)、保存快照等。工具

Patty *Beta

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上下載

但願你以爲這些工具備用。

你使用什麼工具來改進你的代碼,請告訴咱們吧!

相關文章
相關標籤/搜索