国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

如何利用JConsole觀察分析Java程序的運行并進行排錯調優

2019-11-26 14:43:14
字體:
來源:轉載
供稿:網友

一、JConsole是什么

從Java 5開始 引入了 JConsole。JConsole 是一個內置 Java 性能分析器,可以從命令行或在 GUI shell 中運行。您可以輕松地使用 JConsole(或者,它更高端的 “近親” VisualVM )來監控 Java 應用程序性能和跟蹤 Java 中的代碼。

二、如何啟動JConsole
1.如果是從命令行啟動,使 JDK 在 PATH 上,運行 jconsole 即可。
2.如果從 GUI shell 啟動,找到 JDK 安裝路徑,打開 bin 文件夾,雙擊 jconsole 。

當分析工具彈出時(取決于正在運行的 Java 版本以及正在運行的 Java 程序數量),可能會出現一個對話框,要求輸入一個進程的 URL 來連接,也可能列出許多不同的本地 Java 進程(有時包含 JConsole 進程本身)來連接。如圖所示:

想分析那個程序就雙擊那個進程。

三、如何設置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

四、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的使用,-> //www.survivalescaperooms.com/article/77131.htm

參考資料:

  1. Monitoring and Management Using JConsole :http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html
  2. http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html Monitoring and Management Using JMX Technology :http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html
  3. Eclipse launcher for VisualVM : http://visualvm.dev.java.net/eclipse-launcher.html
  4. Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine : http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉川市| 麻栗坡县| 香河县| 西乌| 通山县| 德江县| 托里县| 固始县| 阿瓦提县| 射阳县| 中西区| 赣州市| 惠东县| 柘城县| 江都市| 赣榆县| 吉木乃县| 徐水县| 乌鲁木齐市| 界首市| 巴林左旗| 富民县| 富锦市| 织金县| 曲麻莱县| 镇雄县| 舟山市| 遂溪县| 揭东县| 什邡市| 简阳市| 墨玉县| 原平市| 哈尔滨市| 锡林郭勒盟| 吴江市| 大厂| 和顺县| 江陵县| 图片| 绥棱县|