Visualvm是一個非常實用的Java 監控工具,操作十分方便,多用幾次就會很快的入手啦。
開發大型 Java 應用程序的過程中難免遇到內存泄露、性能瓶頸等問題,比如文件、網絡、數據庫的連接未釋放,未優化的算法等。隨著應用程序的持續運行,可能會造成整個係統運行效率下降,嚴重的則會造成係統崩潰。為了找出程序中隱藏的這些問題,在項目開發後期往往會使用性能分析工具來對應用程序的性能進行分析和優化。
VisualVM是JDK的一個集成的分析工具,自從JDK 6 Update 7以後已經作為Sun的JDK的一部分。VisualVM 是一款免費的性能分析工具。它通過 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多種方式從程序運行時獲得實時數據,從而進行動態的性能分析。同時,它能自動選擇更快更輕量級的技術盡量減少性能分析對應用程序造成的影響,提高性能分析的精度。
啟動jvisualvm
首先到JDK安裝目錄/bin目錄下,雙擊jvisualvm.exe文件啟動
進入jvisualvm界麵,右側為正在運行的Java程序,小編打開了一個jconsole程序來做示例
雙擊要監控的Java進行,有關監控進程的概要,監控,線程等信息都會以圖像的方式顯現出來,能更方便的對Java運行程序做分析
右鍵左邊欄,正在運行的Java程序,可以執行Dump,線程,Dump堆的操作並且可以將正在運行的程序進行快照儲備,同時可以設置在發生內存溢出時自動生成Dump文件。
右鍵【文件】-->【添加遠程主機】可對遠程運行的Java程序進行監控
菜單欄,工具-->插件 輔助功能 可以幫助我們更細致對Java程序進行監視分析,比如Visual GC 能顯示年輕代裏的Eden區和survivor區的實時數據
140.5M / 09-05
76.4M / 03-25
55M / 06-05
237.9M / 04-13
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
484.7M / 09-27
165.4M / 09-05
353.9M / 06-05
131.8M / 04-13
195.6M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
110.5M / 09-05
33.4M / 09-05
325.8M / 08-12
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
369M / 09-22
181.5M / 09-22
201.2M / 09-05
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
1.76G / 09-22
1.92G / 04-17
116.2M / 04-10
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
561.8M / 07-11
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06
132M / 07-06