若何應用JConsole不雅察剖析Java法式的運轉並停止排錯調優。本站提示廣大學習愛好者:(若何應用JConsole不雅察剖析Java法式的運轉並停止排錯調優)文章只能為提供參考,不一定能成為您想要的結果。以下是若何應用JConsole不雅察剖析Java法式的運轉並停止排錯調優正文
1、JConsole是甚麼
從Java 5開端 引入了 JConsole。JConsole 是一個內置 Java 機能剖析器,可以從敕令行或在 GUI shell 中運轉。您可以輕松地應用 JConsole(或許,它更高真個 “遠親” VisualVM )來監控 Java 運用法式機能和跟蹤 Java 中的代碼。
2、若何啟動JConsole
1.假如是從敕令行啟動,使 JDK 在 PATH 上,運轉 jconsole 便可。
2.假如從 GUI shell 啟動,找到 JDK 裝置途徑,翻開 bin 文件夾,雙擊 jconsole 。
當剖析對象彈出時(取決於正在運轉的 Java 版本和正在運轉的 Java 法式數目),能夠會湧現一個對話框,請求輸出一個過程的 URL 來銜接,也能夠列出很多分歧的當地 Java 過程(有時包括 JConsole 過程自己)來銜接。如圖所示:
想剖析誰人法式就雙擊誰人過程。
3、若何設置JAVA法式運轉時可以被JConsolse銜接剖析
1.當地法式(絕對於開啟JConsole的盤算機),無需設置任何參數便可以被當地開啟的JConsole銜接(Java SE 6開端無需設置,之前照樣須要設置運轉時參數 -Dcom.sun.management.jmxremote )
2.無認證銜接 (上面的設置表現:銜接的端口為8999、無需認證便可以被銜接)
-Dcom.sun.management.jmxremote.port=8999 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
3.假如斟酌到平安身分,須要認證,須要平安銜接,也是可以弄定的。參考:http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenv
4、JConsole若何銜接長途機械的JAVA法式(舉例解釋)
1、寫一個簡略的一向運轉的JAVA法式,運轉在某台機械上如(192.168.0.181)
java -cp . -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false JConsoleTest
2、別的一台機械停止銜接
可以直接應用敕令:
jconsole.exe 192.168.0.181:8999
也能夠在曾經翻開的JConsole界面操作 銜接->新建銜接->選擇長途過程->輸出長途主機IP和端標語->點擊“銜接”,如圖:
然後就會進入剖析界面:
機能剖析
上面說說若何剖析,若何應用這六個標簽
• 概述: Displays overview information about the Java VM and monitored values.
• 內存: 顯示內存應用信息
• 線程: 顯示線程應用信息
• 類: 顯示類裝載信息
•*VM摘要:*顯示java VM信息
• MBeans: 顯示 MBeans.
然後就會進入剖析界面:
概述
概述很簡略沒啥說的,本身看看吧,不外值得一提的是對著圖點擊右鍵可以保留數據到CSV文件,今後可使用其他對象來剖析這些數據。
內存
這個比擬有價值,參看堆內存,非堆內存,內存池的狀態整體內存的分派和應用情形和分歧的GC停止渣滓收受接管的次數和時光。可以手動停止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
這裡可以有一些額定的操作。
插件
jconsole -pluginpath C:\Java\jdk1.6.0_22\demo\management\JTop\JTop.jar
一看便知,是個甚麼器械。
推舉應用進級版 JConsole 即 jvisualvm 。
關於jvisualvm的應用,-> http://www.jb51.net/article/77131.htm
參考材料: