最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、JConsole是什么

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

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

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

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

三、如何設置JAVA程序運行時可以被JConsolse連接分析

1.本地程序(相對于開啟JConsole的計算機),無需設置任何參數(shù)就可以被本地開啟的JConsole連接(Java SE 6開始無需設置,之前還是需要設置運行時參數(shù) -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

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


然后就會進入分析界面: 

性能分析

下面說說如何分析,如何使用這六個標簽
• 概述: 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進行垃圾回收的次數(shù)和時間??梢允謩舆M行GC查看內(nèi)存變化。

 

   在分析JAVA內(nèi)存問題進行調(diào)優(yōu)時候非常有用,你要學習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ù)目的峰值(紅色)和當前活動的線程(藍色)。

 

   另外下面有個按鈕“檢測到死鎖”,有時候會有用處。

沒啥要說的。

VM摘要

 

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

MBean

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

插件

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

 

一看便知,是個什么東西。

推薦使用升級版 JConsole 即 jvisualvm 。

關(guān)于jvisualvm的使用,-> http://www.fzitv.net/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)文章

  • SpringBoot2基于重復創(chuàng)建bean的問題及解決

    SpringBoot2基于重復創(chuàng)建bean的問題及解決

    這篇文章主要介紹了SpringBoot2基于重復創(chuàng)建bean的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • springboot如何讀取application.yml文件

    springboot如何讀取application.yml文件

    這篇文章主要介紹了springboot如何讀取application.yml文件的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-12-12
  • Java基于FFmpeg實現(xiàn)Mp4視頻轉(zhuǎn)GIF

    Java基于FFmpeg實現(xiàn)Mp4視頻轉(zhuǎn)GIF

    FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。本文主要介紹了在Java中如何基于FFmpeg進行Mp4視頻到Gif動圖的轉(zhuǎn)換,感興趣的小伙伴可以了解一下
    2022-11-11
  • spring-mybatis與原生mybatis使用對比分析

    spring-mybatis與原生mybatis使用對比分析

    這篇文章主要介紹了spring-mybatis與原生mybatis使用對比分析,需要的朋友可以參考下
    2017-11-11
  • java8日期工具類封裝的實戰(zhàn)記錄

    java8日期工具類封裝的實戰(zhàn)記錄

    java time包中的是類是不可變且線程安全的,新的時間及日期API位于java.time中,下面這篇文章主要給大家介紹了關(guān)于java8日期工具類封裝的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Java下載文件時文件名亂碼問題解決辦法

    Java下載文件時文件名亂碼問題解決辦法

    我最近在開發(fā)時遇到了文件另存為時文件名出現(xiàn)亂碼,在火狐上正常的文件名,在IE中又出現(xiàn)亂碼問題,然后好不容易在IE下調(diào)試好了文件名亂碼問題,在火狐下又出現(xiàn)亂碼,最后終于感覺這樣是能解決了。具體如下:
    2013-04-04
  • IDEA代碼規(guī)范插件P3C+代碼注釋模板配置方法

    IDEA代碼規(guī)范插件P3C+代碼注釋模板配置方法

    這篇文章主要介紹了IDEA代碼規(guī)范插件P3C+代碼注釋模板配置方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • java實現(xiàn)oracle插入當前時間的方法

    java實現(xiàn)oracle插入當前時間的方法

    這篇文章主要介紹了java實現(xiàn)oracle插入當前時間的方法,以實例形式對比分析了java使用Oracle操作時間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 詳解JAVA常用的時間操作【實用】

    詳解JAVA常用的時間操作【實用】

    本文主要介紹了JAVA一些常用的時間操作,很實用,相信大家在開發(fā)項目時會用到,下面就跟小編一起來看下吧
    2016-12-12
  • 劍指Offer之Java算法習題精講排列與N叉樹

    劍指Offer之Java算法習題精講排列與N叉樹

    跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03

最新評論

樟树市| 冀州市| 琼结县| 准格尔旗| 五寨县| 施甸县| 鲁山县| 连云港市| 绥江县| 太仆寺旗| 工布江达县| 龙川县| 山西省| 金乡县| 浮山县| 怀集县| 昔阳县| 桐乡市| 安阳市| 英德市| 都匀市| 南充市| 乌海市| 东至县| 长垣县| 柘城县| 平武县| 城口县| 南岸区| 汤阴县| 婺源县| 綦江县| 寿光市| 修水县| 闽清县| 明溪县| 壶关县| 桃园县| 和硕县| 通海县| 永州市|