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