如何利用 JConsole观察分析Java程序的运行,进行排错调优
原文鏈接:http://jiajun.iteye.com/blog/810150
?
一、JConsole是什么
??? 從Java 5開始 引入了 JConsole。JConsole 是一個內(nèi)置 Java 性能分析器,可以從命令行或在 GUI shell 中運行。您可以輕松地使用 JConsole(或者,它更高端的 “近親” VisualVM )來監(jiān)控 Java 應(yīng)用程序性能和跟蹤 Java 中的代碼。
二、如何啟動JConsole
??? 當(dāng)分析工具彈出時(取決于正在運行的 Java 版本以及正在運行的 Java 程序數(shù)量),可能會出現(xiàn)一個對話框,要求輸入一個進(jìn)程的 URL 來連接,也可能列出許多不同的本地 Java 進(jìn)程(有時包含 JConsole 進(jìn)程本身)來連接。如圖所示:
想分析那個程序就雙擊那個進(jìn)程。
三、如何設(shè)置JAVA程序運行時可以被JConsolse連接分析
四、JConsole如何連接遠(yuǎn)程機(jī)器的JAVA程序(舉例說明)
1、寫一個簡單的一直運行的JAVA程序,運行在某臺機(jī)器上如(192.168.0.181)
Java代碼???
2、另外一臺機(jī)器進(jìn)行連接
可以直接使用命令:
Java代碼???也可以在已經(jīng)打開的JConsole界面操作 連接->新建連接->選擇遠(yuǎn)程進(jìn)程->輸入遠(yuǎn)程主機(jī)IP和端口號->點擊“連接”,如圖:
?
?然后就會進(jìn)入分析界面:?
性能分析
下面說說如何分析,如何使用這六個標(biāo)簽
- 概述:?Displays overview information about the Java VM and monitored values.
- 內(nèi)存:?顯示內(nèi)存使用信息
- 線程:?顯示線程使用信息
- 類:?顯示類裝載信息
- *VM摘要:*顯示java VM信息
- MBeans:?顯示 MBeans.
概述
?
??? 概述很簡單沒啥說的,自己看看吧,不過值得一提的是對著圖點擊右鍵可以保存數(shù)據(jù)到CSV文件,以后可以使用其他工具來分析這些數(shù)據(jù)。
內(nèi)存
??? 這個比較有價值,參看堆內(nèi)存,非堆內(nèi)存,內(nèi)存池的狀況總體內(nèi)存的分配和使用情況以及不同的GC進(jìn)行垃圾回收的次數(shù)和時間??梢允謩舆M(jìn)行GC查看內(nèi)存變化。
?
?? 在分析JAVA內(nèi)存問題進(jìn)行調(diào)優(yōu)時候非常有用,你要學(xué)習(xí)JVM內(nèi)存模型,之后會發(fā)現(xiàn)這里的每個值都具有意義。
?
?? GC的算法和參數(shù)對性能有顯著的影響,注意垃圾回收次數(shù)、時間、以及partial GC和full GC,調(diào)整你所使用的不同GC和以及各個GC下的參數(shù),然后在這個視圖下觀察,以得到好的性能。
?
這里貼一下 Java?HotSpot?VM garbage collector 下generational GC 的各代的劃分圖:
?
關(guān)于GC,可以參考:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
線程
??? 左下角顯示所有的活動線程(如果線程過多,可以在下面的過濾欄中輸入字符串過濾出你想要觀察的線程)。點擊某個顯示會顯示這個線程的名稱、狀態(tài)、阻塞和等待的次數(shù)、堆棧的信息。
?
??? 統(tǒng)計圖顯示的是線程數(shù)目的峰值(紅色)和當(dāng)前活動的線程(藍(lán)色)。
?
?? 另外下面有個按鈕“檢測到死鎖”,有時候會有用處。
類
沒啥要說的。
VM摘要
?
也沒啥要說的,看看吧,內(nèi)存狀況,操作系統(tǒng)...
MBean
這里可以有一些額外的操作。
插件
Java代碼???
一看便知,是個什么東西。
推薦使用升級版 JConsole 即 jvisualvm 。
轉(zhuǎn)載于:https://www.cnblogs.com/zhongshiqiang/p/6041493.html
總結(jié)
以上是生活随笔為你收集整理的如何利用 JConsole观察分析Java程序的运行,进行排错调优的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《软件设计师》——数据结构和算法基础
- 下一篇: JSP2.0语法初步掌握(学习笔记)