欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何利用JConsole觀察分析Java程序的運(yùn)行并進(jìn)行排錯(cuò)調(diào)優(yōu)

 更新時(shí)間:2015年12月28日 23:56:25   投稿:mdxy-dxy  
從Java 5開(kāi)始 引入了 JConsole。JConsole 是一個(gè)內(nèi)置 Java 性能分析器,可以從命令行或在 GUI shell 中運(yùn)行。您可以輕松地使用 JConsole(或者,它更高端的 “近親” VisualVM )來(lái)監(jiān)控 Java 應(yīng)用程序性能和跟蹤 Java 中的代碼

一、JConsole是什么

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

二、如何啟動(dòng)JConsole
1.如果是從命令行啟動(dòng),使 JDK 在 PATH 上,運(yùn)行 jconsole 即可。
2.如果從 GUI shell 啟動(dòng),找到 JDK 安裝路徑,打開(kāi) bin 文件夾,雙擊 jconsole 。

當(dāng)分析工具彈出時(shí)(取決于正在運(yùn)行的 Java 版本以及正在運(yùn)行的 Java 程序數(shù)量),可能會(huì)出現(xiàn)一個(gè)對(duì)話框,要求輸入一個(gè)進(jìn)程的 URL 來(lái)連接,也可能列出許多不同的本地 Java 進(jìn)程(有時(shí)包含 JConsole 進(jìn)程本身)來(lái)連接。如圖所示:

想分析那個(gè)程序就雙擊那個(gè)進(jìn)程。

三、如何設(shè)置JAVA程序運(yùn)行時(shí)可以被JConsolse連接分析

1.本地程序(相對(duì)于開(kāi)啟JConsole的計(jì)算機(jī)),無(wú)需設(shè)置任何參數(shù)就可以被本地開(kāi)啟的JConsole連接(Java SE 6開(kāi)始無(wú)需設(shè)置,之前還是需要設(shè)置運(yùn)行時(shí)參數(shù) -Dcom.sun.management.jmxremote )
2.無(wú)認(rèn)證連接 (下面的設(shè)置表示:連接的端口為8999、無(wú)需認(rèn)證就可以被連接)

-Dcom.sun.management.jmxremote.port=8999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false

3.如果考慮到安全因素,需要認(rèn)證,需要安全連接,也是可以搞定的。參考:http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenv

四、JConsole如何連接遠(yuǎn)程機(jī)器的JAVA程序(舉例說(shuō)明)

1、寫(xiě)一個(gè)簡(jiǎn)單的一直運(yùn)行的JAVA程序,運(yùn)行在某臺(tái)機(jī)器上如(192.168.0.181)

復(fù)制代碼 代碼如下:

java -cp . -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false JConsoleTest

2、另外一臺(tái)機(jī)器進(jìn)行連接

可以直接使用命令:

復(fù)制代碼 代碼如下:

jconsole.exe 192.168.0.181:8999

也可以在已經(jīng)打開(kāi)的JConsole界面操作 連接->新建連接->選擇遠(yuǎn)程進(jìn)程->輸入遠(yuǎn)程主機(jī)IP和端口號(hào)->點(diǎn)擊“連接”,如圖:


然后就會(huì)進(jìn)入分析界面: 

性能分析

下面說(shuō)說(shuō)如何分析,如何使用這六個(gè)標(biāo)簽
• 概述: Displays overview information about the Java VM and monitored values.
• 內(nèi)存: 顯示內(nèi)存使用信息
• 線程: 顯示線程使用信息
• 類(lèi): 顯示類(lèi)裝載信息
•*VM摘要:*顯示java VM信息
• MBeans: 顯示 MBeans.

然后就會(huì)進(jìn)入分析界面: 

概述

 

    概述很簡(jiǎn)單沒(méi)啥說(shuō)的,自己看看吧,不過(guò)值得一提的是對(duì)著圖點(diǎn)擊右鍵可以保存數(shù)據(jù)到CSV文件,以后可以使用其他工具來(lái)分析這些數(shù)據(jù)。

內(nèi)存

這個(gè)比較有價(jià)值,參看堆內(nèi)存,非堆內(nèi)存,內(nèi)存池的狀況總體內(nèi)存的分配和使用情況以及不同的GC進(jìn)行垃圾回收的次數(shù)和時(shí)間。可以手動(dòng)進(jìn)行GC查看內(nèi)存變化。

 

   在分析JAVA內(nèi)存問(wèn)題進(jìn)行調(diào)優(yōu)時(shí)候非常有用,你要學(xué)習(xí)JVM內(nèi)存模型,之后會(huì)發(fā)現(xiàn)這里的每個(gè)值都具有意義。

 

   GC的算法和參數(shù)對(duì)性能有顯著的影響,注意垃圾回收次數(shù)、時(shí)間、以及partial GC和full GC,調(diào)整你所使用的不同GC和以及各個(gè)GC下的參數(shù),然后在這個(gè)視圖下觀察,以得到好的性能。

 

這里貼一下 Java HotSpot VM garbage collector 下generational GC 的各代的劃分圖:

 


關(guān)于GC,可以參考:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

線程

    左下角顯示所有的活動(dòng)線程(如果線程過(guò)多,可以在下面的過(guò)濾欄中輸入字符串過(guò)濾出你想要觀察的線程)。點(diǎn)擊某個(gè)顯示會(huì)顯示這個(gè)線程的名稱、狀態(tài)、阻塞和等待的次數(shù)、堆棧的信息。

 

    統(tǒng)計(jì)圖顯示的是線程數(shù)目的峰值(紅色)和當(dāng)前活動(dòng)的線程(藍(lán)色)。

 

   另外下面有個(gè)按鈕“檢測(cè)到死鎖”,有時(shí)候會(huì)有用處。

類(lèi)

沒(méi)啥要說(shuō)的。

VM摘要

 

也沒(méi)啥要說(shuō)的,看看吧,內(nèi)存狀況,操作系統(tǒng)...

MBean

這里可以有一些額外的操作。

插件

jconsole -pluginpath C:\Java\jdk1.6.0_22\demo\management\JTop\JTop.jar

 

一看便知,是個(gè)什么東西。

推薦使用升級(jí)版 JConsole 即 jvisualvm 。

關(guān)于jvisualvm的使用,-> http://www.dbjr.com.cn/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

相關(guān)文章

  • java仿windows記事本小程序

    java仿windows記事本小程序

    這篇文章主要為大家詳細(xì)介紹了java仿windows記事本小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 詳解Java?中的函數(shù)式接口

    詳解Java?中的函數(shù)式接口

    這篇文章主要為大家介紹了Java中的函數(shù)式接口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>
    2021-12-12
  • java實(shí)現(xiàn)單源最短路徑

    java實(shí)現(xiàn)單源最短路徑

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單源最短路徑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java實(shí)現(xiàn)簡(jiǎn)易圖書(shū)借閱系統(tǒng)

    Java實(shí)現(xiàn)簡(jiǎn)易圖書(shū)借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)易圖書(shū)借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能對(duì)比

    Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能對(duì)比

    本文主要介紹了Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能對(duì)比,分享給大家,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • spring整合atomikos實(shí)現(xiàn)分布式事務(wù)的方法示例

    spring整合atomikos實(shí)現(xiàn)分布式事務(wù)的方法示例

    本文整合了一個(gè)spring和atomikos的demo,并且通過(guò)案例演示說(shuō)明atomikos的作用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 詳解APP微信支付(java后臺(tái)_統(tǒng)一下單和回調(diào))

    詳解APP微信支付(java后臺(tái)_統(tǒng)一下單和回調(diào))

    這篇文章主要介紹了APP微信支付(java后臺(tái)_統(tǒng)一下單和回調(diào)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java Map.getOrDefault方法詳解

    Java Map.getOrDefault方法詳解

    Map.getOrDefault(Object key, V defaultValue)是Java中Map接口的一個(gè)方法,用于獲取指定鍵對(duì)應(yīng)的值,如果鍵不存在,則返回一個(gè)默認(rèn)值,這篇文章主要介紹了Java Map.getOrDefault方法詳解,需要的朋友可以參考下
    2024-01-01
  • Java適配器模式應(yīng)用之電源適配器功能詳解

    Java適配器模式應(yīng)用之電源適配器功能詳解

    這篇文章主要介紹了Java適配器模式應(yīng)用之電源適配器功能,較為詳細(xì)的分析了適配器模式的概念、原理及Java基于適配器模式實(shí)現(xiàn)電源適配器功能的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • 深入Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的介紹

    深入Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的介紹

    本篇文章是對(duì)Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的概述,需要的朋友參考下
    2013-05-05

最新評(píng)論