最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
怎么解析Java虛擬機(jī)中的ServiceabilityAgent

這篇文章給大家介紹怎么解析Java虛擬機(jī)中的Serviceability Agent,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

目前累計(jì)服務(wù)客戶近千家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)公司始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

我們?cè)趩栴}的分析診斷過程中,DebuggingTroubleshooting工具起了很大的作用,有一個(gè)稱手的工具,能節(jié)省大量的精力,快速解決原本需要耗費(fèi)許久的工作。但比分析應(yīng)用更底層的,Low Level 到 JVM 這一層級(jí)的工具卻比較少。

比如有些時(shí)候,你在分析一個(gè)應(yīng)用問題時(shí),想要了解應(yīng)用當(dāng)前內(nèi)存結(jié)構(gòu),加載類的內(nèi)容,線程的 Stack Memory,死鎖分析,存活對(duì)象統(tǒng)計(jì)和查詢等等。

以上這些,用哪款工具比較合適呢?這些比較低層的分析,只能依靠 JVM 的支持,才能正確的分析。好在官方提供了這樣一款工具。

這就是我們本次要提到的工具,或者準(zhǔn)確來說是個(gè)工具集,但提供給我們使用時(shí),類似于一站式的感覺。在一個(gè)工具里完成大量的需求,它是 Serviceability Agent,更多時(shí)候被稱為 SA。

什么是SA?

The Serviceability Agent is a Sun private component in the HotSpot repository that was developed by HotSpot engineers to assist in debugging HotSpot. They then realized that SA could be used to craft serviceability tools for end users since it can expose Java objects as well as HotSpot data structures both in running processes and in core files.

概括來講,這是Sun (Oracle)公司提供的一個(gè)用于分析HotSpot運(yùn)行時(shí)和Core文件中數(shù)據(jù)的工具??梢?attach 到Java 進(jìn)程或分析 Core文件中的數(shù)據(jù),了解加載的 class,是一個(gè)包含大量 Java API 和工具的工具集。

而且,SA 在 attatch到 進(jìn)程之后,會(huì)暫停當(dāng)前進(jìn)程的執(zhí)行,拿到的是進(jìn)程的一個(gè) snapshot。當(dāng)前進(jìn)程會(huì)在 SA 斷開后繼續(xù)執(zhí)行。

怎樣使用

SA 在JDK中是以 Jar 文件的形式提供的,位于JAVA_HOME/lib/sa-jdi.jar。和一般的 Jar 文件執(zhí)行一樣。SA提供了兩種使用方式

  •  GUI 方式的 HSDB 

  •  命令行的 CLIHSDB

例如我們使用GUI時(shí),切換到該目錄下,執(zhí)行如下命令:

java -cp sa-jdi.jar sun.jvm.hotspot.HSDB

選擇 File 菜單下的 Attach  to HotSpot Process,輸入Java進(jìn)程的pid即可。

此時(shí),會(huì)看到進(jìn)程的線程都在列表里展示了。

怎么解析Java虛擬機(jī)中的Serviceability Agent

 頂部的一系列圖標(biāo),可以查看選定線程的信息,例如能進(jìn)行 Inspect,查看VM層面 線程對(duì)象的結(jié)構(gòu),選擇 Stack Memory,查看 包含地址信息的stack 的數(shù)據(jù)。

怎么解析Java虛擬機(jī)中的Serviceability Agent

后面是要以通過 Jstack拿到的Stack Trace。

在 Tools 菜單下,有一系列的工具。

怎么解析Java虛擬機(jī)中的Serviceability Agent

我們選幾個(gè)來簡(jiǎn)要介紹下。

Class Browser

通過這個(gè),可以看到所有 JVM 加載的 class。對(duì)應(yīng)類內(nèi)的方法等信息自然也都能查到。它同時(shí)還支持把一個(gè) class dump 到本地。這對(duì)于一些只能通過 core文件來分析問題的情況,可以拿到 class 來分析。

操作也簡(jiǎn)單,找到對(duì)應(yīng)的class, 點(diǎn)擊create class 就OK了, class 生成到lib目錄下。

怎么解析Java虛擬機(jī)中的Serviceability Agent

Find Object by Query

這個(gè)功能和 SQL類似,在文本框中輸入要查詢的對(duì)象

例如這個(gè):

select t from java.lang.Thread t 

怎么解析Java虛擬機(jī)中的Serviceability Agent

Code Viewer

對(duì)于一個(gè)類內(nèi)的方法,有些時(shí)候需要分析方法的 JVM 指令或者 JIT 編譯后的廣場(chǎng),可以使用這個(gè)工具,在輸入 Class或者 Method的地址后,就會(huì)看到其對(duì)應(yīng)的內(nèi)容

怎么解析Java虛擬機(jī)中的Serviceability Agent

Find Value in Heap

該工具可以在類似于 GC 問題時(shí),通過指定對(duì)象的地址查看對(duì)象是否還存在于Heap中。

怎么解析Java虛擬機(jī)中的Serviceability Agent

通過SA,我們不僅能分析到 Java 應(yīng)用層面的東西,而且一些JVM 層面的,甚至 JIT 編譯的方法, GC 是否回收對(duì)象,都能夠很容易的了解到,仿佛一個(gè)JVM 的顯微鏡,在SA的協(xié)助下,問題都無處遁形。

關(guān)于怎么解析Java虛擬機(jī)中的Serviceability Agent就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


本文標(biāo)題:怎么解析Java虛擬機(jī)中的ServiceabilityAgent
標(biāo)題鏈接:http://fisionsoft.com.cn/article/gchgpp.html