原創(chuàng)|產(chǎn)品更新|編輯:鄭恭琳|2020-09-27 15:27:17.283|閱讀 359 次
概述:JProfiler v 11.1 更新發(fā)布,在macOS和Linux上添加了沒有安全點(diǎn)偏差的異步采樣模式。它使用HotSpot JVM中的非標(biāo)準(zhǔn)AsyncGetCallTrace API在任意時(shí)間獲取調(diào)用堆棧,而不僅是在JVM認(rèn)為是安全點(diǎn)的某些執(zhí)行狀態(tài)下。對(duì)于高度多線程的CPU綁定代碼,此配置文件模式會(huì)生成更準(zhǔn)確的CPU數(shù)據(jù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
JProfiler 11.1引入了以下顯著的新功能:
1、在macOS和Linux上添加了沒有安全點(diǎn)偏差的異步采樣模式。它使用HotSpot JVM中的非標(biāo)準(zhǔn)AsyncGetCallTrace API在任意時(shí)間獲取調(diào)用堆棧,而不僅是在JVM認(rèn)為是安全點(diǎn)的某些執(zhí)行狀態(tài)下。對(duì)于高度多線程的CPU綁定代碼,此配置文件模式會(huì)生成更準(zhǔn)確的CPU數(shù)據(jù)。

可以通過這種方式測(cè)量的唯一線程狀態(tài)是“正在運(yùn)行”。等待、阻塞和網(wǎng)絡(luò)I/O線程狀態(tài)不可用。與使用“可運(yùn)行”線程狀態(tài)來測(cè)量何時(shí)有資格在CPU上調(diào)度線程的其他方法調(diào)用記錄類型相反,“運(yùn)行”僅測(cè)量實(shí)際在CPU上調(diào)度線程的時(shí)間。獲取呼叫堆棧可能會(huì)因多種原因而失敗,這些原因在“Sampling misss”頂級(jí)節(jié)點(diǎn)中概述。

異步采樣使用的預(yù)分配緩沖區(qū)可能太小,無法捕獲所有調(diào)用堆棧。調(diào)用樹中也顯示了這種情況,會(huì)話設(shè)置提供了一種相對(duì)于默認(rèn)大小增加緩沖區(qū)大小的方法。
請(qǐng)注意,Windows沒有信號(hào)處理程序,也不支持這種數(shù)據(jù)收集。
2、本機(jī)采樣已在macOS和Linux上添加。使用上述新的異步采樣模式時(shí),可以選擇啟用本機(jī)采樣。如果啟用了本地采樣,則JProfiler解析本地庫中的符號(hào),并將本地節(jié)點(diǎn)添加到調(diào)用樹中。
在本機(jī)調(diào)用樹節(jié)點(diǎn)中,相關(guān)的本機(jī)庫顯示在方括號(hào)中,后跟函數(shù)名稱。
在類聚合模式下,本機(jī)庫被分組在一起,而在包聚合級(jí)別中,所有本機(jī)調(diào)用都被累積。當(dāng)刪除部分調(diào)用樹時(shí),該庫也像一個(gè)類,因此,通過刪除所選節(jié)點(diǎn)的類(下面將介紹此版本中的新功能),整個(gè)本地庫將從調(diào)用樹中刪除。
3、JProfiler現(xiàn)在可以打開JDK飛行記錄器(JFR)快照。JFR快照通常記錄在生產(chǎn)環(huán)境中,在該環(huán)境中,性能分析代理的安裝受到限制。從此版本開始,您現(xiàn)在可以在分析這些快照時(shí)發(fā)揮JProfiler的全部分析功能。
視圖選擇器中的可用視圖與常規(guī)JProfiler會(huì)話中的視圖不同。JProfiler可以從JFR事件數(shù)據(jù)構(gòu)造許多遙測(cè)視圖,包括堆大小、記錄的吞吐量、GC活動(dòng)、類加載、線程計(jì)數(shù)和CPU負(fù)載。
在內(nèi)存部分中,將顯示堆統(tǒng)計(jì)信息和分配記錄。如果為JFR記錄啟用了堆統(tǒng)計(jì)信息,則“活動(dòng)對(duì)象”視圖將顯示占用大部分堆的類。第一個(gè)和最后一個(gè)堆統(tǒng)計(jì)信息之間的差異顯示在“差異”列中。
JFR快照中分配記錄中的數(shù)據(jù)映射到“已記錄對(duì)象”、“分配調(diào)用樹”和“分配熱點(diǎn)”視圖。
在“CPU”部分中,“調(diào)用樹”、“熱點(diǎn)”和“調(diào)用圖”視圖可用。JFR記錄根據(jù)緩沖區(qū)大小截?cái)喔櫍@些跟蹤包含在單獨(dú)的頂級(jí)節(jié)點(diǎn)中。
JFR記錄僅以Java代碼記錄可運(yùn)行的線程。由于JFR采樣的性質(zhì),無法進(jìn)行時(shí)間計(jì)算,并且僅顯示事件計(jì)數(shù)。“等待”、“阻止”和“套接字與文件I/O”線程狀態(tài)顯示時(shí)間,因?yàn)樗鼈兪怯啥〞r(shí)事件組裝而成的。
JFR快照包含JProfiler用于構(gòu)建線程歷史視圖的線程數(shù)據(jù)。包含的線程轉(zhuǎn)儲(chǔ)也顯示在JProfiler中。
JFR快照中的“等待”、“阻止”和“停車”事件顯示在“監(jiān)視器和鎖”部分的“監(jiān)視器歷史記錄”視圖中。這些事件是CPU視圖中“正在等待”和“已阻止”線程狀態(tài)的來源。“監(jiān)視器使用情況統(tǒng)計(jì)信息”視圖也可用。
最后,根據(jù)JFR事件構(gòu)建了許多探針:“類”、“文件”、“套接字”和“異常”。這些視圖根據(jù)是否記錄了相應(yīng)的JFR事件顯示數(shù)據(jù)。在CPU視圖中,“文件”和“套接字”探針也是“套接字和文件IO”線程狀態(tài)的來源。
4、新的異常值檢測(cè)視圖顯示了方法的調(diào)用時(shí)間相對(duì)于其平均值如何變化。當(dāng)將儀器用于方法調(diào)用記錄且CPU記錄處于活動(dòng)狀態(tài)時(shí),此視圖的數(shù)據(jù)始終可用。它代替了“方法統(tǒng)計(jì)”視圖,該視圖具有單獨(dú)的記錄,這增加了很多開銷。
離群系數(shù)量化最大調(diào)用時(shí)間偏離平均值多少。具有較高異常值系數(shù)的方法非常適合進(jìn)行檢查,它具有JProfiler中出色的方法運(yùn)行記錄功能,可在調(diào)用樹中分別向您顯示最慢的調(diào)用。同樣,針對(duì)異常檢測(cè)的時(shí)間測(cè)量是針對(duì)與選定方法運(yùn)行記錄相同的所選線程狀態(tài)執(zhí)行的。
從異常值檢測(cè)視圖中,您可以在上下文菜單中輕松選擇一種方法作為例外方法。
最大時(shí)間和調(diào)用計(jì)數(shù)的閾值限制了顯示數(shù)據(jù)的數(shù)量,可以在視圖設(shè)置中進(jìn)行調(diào)整。
5、跟蹤異步調(diào)用現(xiàn)在適用于采樣,包括新的異步采樣模式。以前,您必須使用工具進(jìn)行概要分析,才能使用“內(nèi)聯(lián)異步執(zhí)行”調(diào)用樹分析。必須更改分析模式才能獲得內(nèi)聯(lián)的調(diào)用堆棧,這被證明是有限制的,特別是對(duì)于Kotlin協(xié)程來說,內(nèi)聯(lián)特別重要。
6、現(xiàn)在,您可以在調(diào)用樹中顯示有助于所選調(diào)用堆棧的所有線程。當(dāng)查看為所有線程累計(jì)的調(diào)用樹時(shí),知道哪個(gè)單個(gè)線程負(fù)責(zé)增加所選節(jié)點(diǎn)的時(shí)間可能會(huì)很有趣。上下文菜單使您可以訪問此操作。
您可以從線程列表中直接切換到調(diào)用樹中的選定線程。
7、整個(gè)類或包的調(diào)用樹刪除已實(shí)現(xiàn)。您可以通過選擇一個(gè)節(jié)點(diǎn)并選擇“刪除選定的子樹”操作來刪除部分調(diào)用樹。
除了僅刪除所選方法之外,您現(xiàn)在還可以選擇刪除所選類或所選包的所有調(diào)用。
在某些情況下,您可能希望保留所選方法,而只是將其自拍時(shí)間設(shè)置為零。例如,對(duì)于Thread.run頂級(jí)方法可能就是這種情況,其中其大部分自用時(shí)間位于非概要分析類中,并且您希望概要分析代碼的百分比總計(jì)為100%。
8、遙測(cè)繪圖已得到改進(jìn)。縮小遙測(cè)技術(shù)后,它們現(xiàn)在將顯示抖動(dòng)圖的最小和最大包絡(luò),而不是每個(gè)像素的內(nèi)插平均值。同樣,所有縮放級(jí)別的峰值都會(huì)保留。
此外,您現(xiàn)在可以在macOS上使用CTRL +滾輪或捏合手勢(shì)來進(jìn)行放大和縮小,并且在更改縮放級(jí)別時(shí),遙測(cè)技術(shù)將保留當(dāng)前光標(biāo)位置。









本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn