1、簡介
JProfiler是一個ALL-IN-ONE的JAVA剖析工具,可以方便地監控Java程序的CPU、內存使用狀況,能夠檢查垃圾回收、分析性能瓶頸。
本說明文檔基於JProfiler 9.2編寫。
2、安裝
安裝包:JProfiler_windows-x64_9_2.exe (JProfiler 9注冊碼.txt)
如果要監控的遠端服務器操作系統不同,在Select Component這步,可以選擇安裝不同系統的Native libraries for profiling agent。
如果要為Eclipse安裝JProfiler插件,到安裝插件的步驟時,選擇當前Eclipse版本,再指定Eclipse路徑即可。
3、啟用本機監控
1、首先啟動希望監測的Java進程,這里以我們的服務端為例。
2、打開JProfiler,選擇菜單 Session - Start Center,切換到 Quick Attach 標簽頁。這里列出了當前本機上正在運行所有的Java進程,選擇要監測的進程,按 Start 開始。
3、接下來的彈框中可以選擇Instrumentation和Sampling兩種預置的Profiling設置,為了使用JProfiler的全部特性,建議選擇Instrumentation。
4、還可以進行詳細設置,一般直接OK即可。
4、監控數據
1、 概覽(Telemetrie)
在Overview頁中,可以看到當前監控的Java程序概況,包括內存、垃圾回收、類、線程、CPU負載等圖表。
2、 內存(Live Memory)
在All Objects可以看到內存中各個對象的數量和占用情況。在Recorded Objects和Class Tracker中,還可以對不同的對象或類分別監控。
3、 CPU (CPU views)
在Call Tree頁,可以按運行順序逐級查看當前程序運行耗時。
在Hot Sports頁,可以看到各個方法的執行時間和調用次數,可用於輔助分析性能。
4、 堆遍歷器(Heap walker)
在Heap walker頁,可以點擊相機圖標按鈕記錄Heap快照。建立快照后,可以詳細分析靜態內存中對象數量。還可以查看不同對象的引用計數。
5、 線程(Threads)
Thread History頁可以看到當前各個線程的工作狀況。
6、 數據庫(Database)
在JDBC頁,可以看到連接時間軸、查詢用時等信息。
在JPA/Hibernate頁,可以獲取到和數據庫查詢有關的Call Tree和Hot Spots。
5、數據導出
如圖所示,Export能夠將當前頁的信息導出為HTML頁面或XML數據。
根據當前處在不同的頁面,最后還會有不同的項目,比如線程頁可以選擇Thread Dump。
6、參考文檔
官方文檔: http://resources.ej-technologies.com/jprofiler/help/doc/
一篇JProfiler筆記: http://blog.csdn.net/chendc201/article/details/22897999
內存泄漏相關:https://www.evvvvvvget.com/article/2013/5/22/18963.html
遠程監控相關:http://stackoverflow.com/questions/12215487/remote-profiling-jprofiler