日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《深入理解JAVA虚拟机》周志明 第三版 - 第四章 虚拟机性能监控、故障处理工具

發布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《深入理解JAVA虚拟机》周志明 第三版 - 第四章 虚拟机性能监控、故障处理工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4.1 概述

恰當地使用虛擬機故障處理、分析的工具可以提升我們分析數據、定位并解決問題的效率。

4.2 基礎故障處理工具

JDK的bin目錄中有java.exe、javac.exe這兩個命令行工具,還有各種小工具,除了編譯和運行Java程序外,打包、部署、簽名、調試、監控、運維等各種場景都可能會用到它們。

4.2.1 jps:虛擬機進程狀況工具

可以列出正在運行的虛擬機進程,并顯示虛擬機執行主類(Main Class,main()函數所在的類)名稱以及這些進程的本地虛擬機唯一ID,功能比較單一,但它絕對是使用頻率最高的JDK命令行工具。

jps還可以通過RMI協議查詢開啟了RMI服務的遠程虛擬機進程狀態,參數hostid為RMI注冊表中
注冊的主機名。

4.2.2 jstat:虛擬機統計信息監視工具

是用于監視虛擬機各種運行狀態信息的命令行工具。它可以顯示本地或者遠程[1]虛擬機進程中的類加載、內存、垃圾收集、即時編譯等運行時數據,在沒有GUI圖形界面、只提供了純文本控制臺環境的服務器上,它將是運行期定位虛擬機性能問題的常用工具。

4.2.3 jinfo:Java配置信息工具

是實時查看和調整虛擬機各項參數。使用jps命令的-v參數可以查看虛擬機啟動時顯式指定的參數列表,使用jinfo的-flag選項進行查詢未被顯式指定的參數的系統默認值。

4.2.4 jmap:Java內存映像工具

jmap(Memory Map for Java)命令用于生成堆轉儲快照,還可以查詢finalize執行隊列、Java堆和方法區的詳細信息,如空間使用率、當前用的是哪種收集器等。

4.2.5 jhat:虛擬機堆轉儲快照分析工具

jhat內置了一個微型的HTTP/Web服務器,生成堆轉儲快照的分析結果后,可以在瀏覽器中查看。耗時而且極為耗費硬件資源,分析功能相對來說比較簡陋。

4.2.6 jstack:Java堆棧跟蹤工具

用于生成虛擬機當前時刻的線程快照(一般稱為threaddump或者javacore文件),生成線程快照的目的通常是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間掛起等,都是導致線程長時間停頓的常見原因。

4.2.7 基礎工具總結

在高版本的JDK中,這些工具大多已有了功能更為強大的替代品,譬如JCMD、JHSDB的命令行
模式,但使用方法也是相似的,無論JDK發展到了什么版本,學習這些基礎的工具命令并不會過時和浪費。

4.3 可視化故障處理工具

4.3.1 JHSDB:基于服務性代理的調試工具

JHSDB是一款基于服務性代理(Serviceability Agent,SA)實現的進程外調試工具。服務性代理是HotSpot虛擬機中一組用于映射Java虛擬機運行信息的、主要基于Java語言(含少量JNI代碼)實現的API集合。在實際開發、學習時,可以用它來調試虛擬機進程或者dump出來的內存轉儲快照。

4.3.2 JConsole:Java監視與管理控制臺

是一款基于JMX(Java Manage-ment Extensions)的可視化監視、管理工具。它的主要功能是通過JMX的MBean(Managed Bean)對系統進行信息收集和參數動態調整。JMX是一種開放性的技術,不僅可以用在虛擬機本身的管理上,還可以運行于虛擬機之上的軟件中。虛擬機對JMX
MBean的訪問也是完全開放的,可以使用代碼調用API、支持JMX協議的管理控制臺,或者其他符合JMX規范的軟件進行訪問。

4.3.3 VisualVM:多合-故障處理工具

是功能最強大的運行監視和故障處理程序之一,它除了常規的運行監視、故障處理外,還將提供其他方面的能力,譬如性能分析(Profiling)。VisualVM還有一個很大的優點:不需要被監視的
程序基于特殊Agent去運行,因此它的通用性很強,對應用程序實際性能的影響也較小,使得它可以直接應用在生產環境中。這個優點是JProfiler、YourKit等第三方工具無法與之媲美的。

4.3.4 Java Mission Control:可持續在線的監控工具

現在的JMC不僅可以下載到獨立程序,更常見的是作為Eclipse的插件來使用。JMC與虛擬機之間同樣采取JMX協議進行通信,JMC一方面作為JMX控制臺,顯示來自虛擬機MBean提供的數據;另一方面作為JFR的分析工具,展示來自JFR的數據。

4.4 HotSpot虛擬機插件及工具

在HotSpot的研發過程中,開發團隊曾經編寫(或者收集)過不少虛擬機的插件和輔助工
具,它們存放在HotSpot源碼hotspot/src/share/tools目錄下,包括(含曾經有過但新版本中已被移除的):

Ideal Graph Visualizer:用于可視化展示C2即時編譯器是如何將字節碼轉化為理想圖,然后轉化為機器碼的。

·Client Compiler Visualizer:用于查看C1即時編譯器生成高級中間表示(HIR),轉換成低級中間表示(LIR)和做物理寄存器分配的過程。

·MakeDeps:幫助處理HotSpot的編譯依賴的工具。

·Project Creator:幫忙生成Visual Studio的.project文件的工具。

·LogCompilation:將-XX:+LogCompilation輸出的日志整理成更容易閱讀的格式的工具。

·HSDIS:即時編譯器的反匯編插件。

4.5 本章小結

靈活使用這些工具,可以為處理問題帶來很大的便利。除了本章涉及的OpenJDK中自帶的工具之外,還有很多其他監控和故障處理工具,如何進行監控和故障診斷,這并不是《Java虛擬機規范》中定義的內容,而是取決于虛擬機實現自身的設計。

總結

以上是生活随笔為你收集整理的《深入理解JAVA虚拟机》周志明 第三版 - 第四章 虚拟机性能监控、故障处理工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。