VisualVM——JDK自带的性能分析工具
生活随笔
收集整理的這篇文章主要介紹了
VisualVM——JDK自带的性能分析工具
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引子
這段時間項目新版本要發了,所以跟著QA分析性能測試和壓力測試,用了平時不怎么用的很多工具:
- jmap
jmap -heap pid → 查看堆的使用狀況信息?
jmap -histo:live pid | less → 堆中活動的對象以及大小?
jmap -dump:format=b,file=eclipse_heap.bin pid → Dump堆信息 - jstat,可以查看很多內容 jstat -gcutil -h 20 pid 1000 100 → 查看Java進程GC的情況,1000ms統計一次gc情況統計100次
jstack,查看jvm線程運行狀態,是否有死鎖現象等等信息?
jstack pid → Dump線程信息 - jinfo,查看jvm配置信息
- jps
- jconsole,圖形界面。可以持續收集內存、線程信息,并以曲線的方式顯示出來。?
# 這個工具真正要做的功能是查看JMX Bean的信息,性能分析中并不關心JMX信息。 - mat?:idea: ,分析內存Dump,查找內存泄漏。http://www.eclipse.org/mat/
- JProfiler,商業 Profile工具。查看內存、CPU的使用,強勁
VisualVM在JDK1.6 Update7之后的版本中推出,就放在bin目錄下面。
VisualVM在的官方網站在?https://visualvm.dev.java.net?。JDK1.6 Update7之前的版本可以單獨下載使用。
VisualVM使用簡單,幾乎0配置,功能還是比較豐富的,幾乎囊括了其它JDK自帶命令的所有功能。
- 內存信息
- 線程信息
- Dump堆(本地進程)
- Dump線程(本地進程)
- 打開堆Dump。堆Dump可以用jmap來生成。
- 打開線程Dump
- 生成應用快照(包含內存信息、線程信息等等)
- 性能分析。 :idea: CPU分析(各個方法調用時間),內存分析(各類對象占用的內存)
- ……
PS:
跟著QA做性能測試和壓力測試,很多收獲和感觸。
- 雖然有UI工具,尤其是商業的工具如JProfiler,功能異常強大,但是命令行工具還是非常有市場的。
- 線上出問題時,命令行能方便和快速的Dump出Heap信息和線程信息,然后再對Dump分析;或是JVM信息,如GC次數、JVM參數。命令行對目標的產生的壓力小,UI工具可能無法連上。
- JDK自帶命令行是環境標配的,你總是可以使用。UI可能要安裝,等裝好,菜都涼了。
- 往往是對工具的不了解才不能解決問題,JDK自帶的工具已經可以解決很多問題了。強大的商業工具往往只是增加學習難度。
- 只有測試得出的結果才是可信的,之前的推測往往不可靠的。
- 系統地收集和保證數據,這樣當發現問題時,就有更可以用作判斷的信息。
參考資料
- 好用的性能分析工具–VisualVM
- 可與jprofiler/yourkit媲美的java診斷工具Visualvm
- visualvm的官方網站:?https://visualvm.dev.java.net/download.html?一個Eclipse插件,啟動時附帶啟動visualvm來作性能分析:https://visualvm.dev.java.net/eclipse-launcher.html
from:?http://oldratlee.com/352/tech/java/jvisualvm.html
總結
以上是生活随笔為你收集整理的VisualVM——JDK自带的性能分析工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MessagePack:一种高效二进制序
- 下一篇: Java泛型学习资料小汇