從Java 5開始 引入了 JConsole。JConsole 是一個內置 Java 性能分析器,能夠從命令行或在 GUI shell 中運行。您能夠輕鬆地使用 JConsole(或者,它更高端的 「近親」 VisualVM )來監控 Java 應用程序性能和跟蹤 Java 中的代碼。 html
當分析工具彈出時(取決於正在運行的 Java 版本以及正在運行的 Java 程序數量),可能會出現一個對話框,要求輸入一個進程的 URL 來鏈接,也可能列出許多不一樣的本地 Java 進程(有時包含 JConsole 進程自己)來鏈接。如圖所示: java
想分析那個程序就雙擊那個進程。 算法
一、寫一個簡單的一直運行的JAVA程序,運行在某臺機器上如(192.168.0.181) shell
二、另一臺機器進行鏈接 安全
能夠直接使用命令: oracle
也能夠在已經打開的JConsole界面操做 鏈接->新建鏈接->選擇遠程進程->輸入遠程主機IP和端口號->點擊「鏈接」,如圖: eclipse
而後就會進入分析界面: ide
下面說說如何分析,如何使用這六個標籤 工具
概述很簡單沒啥說的,本身看看吧,不過值得一提的是對着圖點擊右鍵能夠保存數據到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
左下角顯示全部的活動線程(若是線程過多,能夠在下面的過濾欄中輸入字符串過濾出你想要觀察的線程)。點擊某個顯示會顯示這個線程的名稱、狀態、阻塞和等待的次數、堆棧的信息。
統計圖顯示的是線程數目的峯值(紅色)和當前活動的線程(藍色)。
另外下面有個按鈕「檢測到死鎖」,有時候會有用處。
沒啥要說的。
也沒啥要說的,看看吧,內存情況,操做系統...
這裏能夠有一些額外的操做。
一看便知,是個什麼東西。
關於jvisualvm的使用,->http://jiajun.iteye.com/blog/1180230
-----------------------------------------------------------------------------------------------------------------------
參考資料: