翻譯|使用教程|編輯:status|2020-10-22 11:06:12.993|閱讀 483 次
概述:JProfiler 直觀的UI界面、以便捷的可視化配置操作可幫助您解決性能瓶頸、確定內(nèi)存泄漏并了解線程問題。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在 macOS 和 Linux上添加了無安全點(diǎn)偏差的異步采樣模式。它使用 HotSpot JVM 中的非標(biāo)準(zhǔn) AsyncGetCallTrace API 在任意時間獲取調(diào)用堆棧,而不只是在 JVM 視為安全點(diǎn)的某些執(zhí)行狀態(tài)獲取調(diào)用堆棧。此分析模式為高度多線程 CPU 綁定代碼生成更準(zhǔn)確的 CPU 數(shù)據(jù)。
唯一可以這樣測量的線程狀態(tài)是"正在運(yùn)行"。等待、阻塞和凈 I/O 線程狀態(tài)不可用。與其他使用"可運(yùn)行"線程狀態(tài)來衡量線程何時有資格在 CPU 上計(jì)劃的方法呼叫記錄類型相反,"正在運(yùn)行"僅測量線程實(shí)際在 CPU 上調(diào)度的時間。獲取調(diào)用堆棧可能會失敗,原因有很多,這些原因匯總在"采樣未命中"頂級節(jié)點(diǎn)中。
異步采樣使用預(yù)先分配的緩沖區(qū),這些緩沖區(qū)可能太小,無法捕獲所有調(diào)用堆棧。此條件也顯示在調(diào)用樹中,會話設(shè)置提供了一種增加相對于默認(rèn)大小的緩沖區(qū)大小的方法。
請注意,Windows 沒有信號處理程序,不支持此類數(shù)據(jù)收集。
已添加在 macOS 和 Linux 上的本機(jī)采樣。使用上述新的異步采樣模式時,可以選擇啟用本機(jī)采樣。如果啟用本機(jī)采樣,JProfiler 將解析本機(jī)庫中的符號,并將本機(jī)節(jié)點(diǎn)添加到調(diào)用樹。
在本機(jī)調(diào)用樹節(jié)點(diǎn)中,關(guān)聯(lián)的本機(jī)庫顯示在方括號中,后跟函數(shù)名稱。
在類聚合模式下,本機(jī)庫分組在一起,而在包聚合級別中,所有本機(jī)調(diào)用都進(jìn)行聚合。刪除調(diào)用樹的某些部分時,庫也像類一樣,因此通過刪除所選節(jié)點(diǎn)的類(下面顯示的此版本中的新功能),整個本機(jī)庫將從調(diào)用樹中刪除。
JProfiler現(xiàn)在可以打開JDK飛行記錄器(JFR)快照。JFR 快照通常記錄在限制分析代理安裝的生產(chǎn)環(huán)境中。從此版本開始,您現(xiàn)在可以在分析這些快照時發(fā)揮 JProfiler 的全部分析功能庫。
視圖選擇器中的可用視圖與常規(guī) JProfiler 會話中的視圖不同。JProfiler 可以從 JFR 事件數(shù)據(jù)構(gòu)造大量遙測視圖,包括堆大小、記錄吞吐量、GC 活動、類加載、線程計(jì)數(shù)和 CPU 負(fù)載。
在內(nèi)存部分中,將顯示堆統(tǒng)計(jì)信息和分配記錄。如果為 JFR 錄制啟用了堆統(tǒng)計(jì)信息,"活動對象"視圖將顯示包含大部分堆的類。第一個堆統(tǒng)計(jì)信息和最后一個堆統(tǒng)計(jì)信息之間的差值顯示在"差異"列中。
JFR 快照中的分配記錄中的數(shù)據(jù)映射到"記錄對象","分配呼叫樹"和"分配熱點(diǎn)"視圖。
在 CPU 部分中,"呼叫樹","熱點(diǎn)"和"呼叫圖"視圖可用。JFR 記錄根據(jù)緩沖區(qū)大小截?cái)喔櫍@些跟蹤包含在單獨(dú)的頂級節(jié)點(diǎn)中。
JFR 僅記錄可運(yùn)行的線程和 Java 代碼。由于 JFR 采樣的性質(zhì),無法計(jì)算時間,并且僅顯示事件計(jì)數(shù)。"等待","阻止"和"Socket 和文件 I/O"線程狀態(tài)顯示時間,因?yàn)樗鼈兪歉鶕?jù)時事事件組裝的。
JFR 快照包含 JProfiler 用于生成線程歷史記錄視圖的線程數(shù)據(jù)。包含的線程轉(zhuǎn)儲也顯示在 JProfiler 中。
JFR 快照中的"等待""阻止"和"停車"事件顯示在"監(jiān)視器和鎖定"部分的"監(jiān)視器歷史記錄"視圖中。這些事件是 CPU 視圖中的"等待"和"已阻止"線程狀態(tài)的源。"監(jiān)視使用情況統(tǒng)計(jì)信息"視圖也可用。
最后,從 JFR 事件構(gòu)建了許多探測器:"類","文件","套接字"和"異常"。這些視圖顯示數(shù)據(jù)取決于是否記錄了相應(yīng)的 JFR 事件。"文件"和"套接字"探測器也是 CPU 視圖中"套接和文件 IO"線程狀態(tài)的源。
新的異常值檢測視圖顯示方法的調(diào)用時間隨其平均值的變化。當(dāng)用于方法呼叫記錄和 CPU 錄制處于活動狀態(tài)時,此視圖的數(shù)據(jù)始終可用。它取代了"方法統(tǒng)計(jì)"視圖,該視圖具有單獨(dú)的記錄,增加了大量開銷。
異常值系數(shù)量化最大調(diào)用時間與平均值的偏差。具有高異常值系數(shù)的方法是檢查的候選方法,JProfiler 中的異常方法運(yùn)行記錄功能在調(diào)用樹中分別顯示其最慢的調(diào)用。此外,對于與特殊方法運(yùn)行記錄相同的選定線程狀態(tài),執(zhí)行異常值檢測的時間測量。
從異常值檢測視圖中,您可以輕松地在上下文菜單中選擇一種方法作為特殊方法。
最大時間計(jì)數(shù)和調(diào)用計(jì)數(shù)的閾值限制顯示的數(shù)據(jù)量,可以在視圖設(shè)置中進(jìn)行調(diào)整。
跟蹤異步調(diào)用現(xiàn)在適用于采樣,包括新的異步采樣模式。以前,您必須使用檢測分析才能使用"內(nèi)聯(lián)異步執(zhí)行"調(diào)用樹分析。必須更改分析模式以獲得內(nèi)聯(lián)調(diào)用堆棧被證明是有限的,尤其是對于科特林皮質(zhì),其中內(nèi)聯(lián)是特別重要的。
在調(diào)用樹中,您現(xiàn)在可以顯示所有為所選調(diào)用堆棧做出貢獻(xiàn)的線程。查看為所有線程制定的調(diào)用樹時,了解哪些線程負(fù)責(zé)向所選節(jié)點(diǎn)添加時間可能很有趣。上下文菜單允許您訪問此操作。
從線程列表中,您可以直接切換到調(diào)用樹中的選定線程。
已實(shí)現(xiàn)整個類或包的調(diào)用樹刪除。您可以通過選擇節(jié)點(diǎn)并選擇"刪除選定的子樹"操作來刪除調(diào)用樹的某些部分。
除了刪除所選方法外,您現(xiàn)在還可以選擇刪除所選類或所選包的所有調(diào)用。
在某些情況下,您可能希望保留所選方法,但只需將其自時設(shè)置為零。例如,Thread.run頂級方法可能就是這種情況,其中大多數(shù)自時位于非分析類中,您希望分析代碼的百分比加起來高達(dá) 100%。
遙測繪圖已過改進(jìn)。縮小遙測時,它們現(xiàn)在顯示抖動圖形的最小和最大包絡(luò),而不是每個像素的插值平均值。此外,所有縮放級別都保留峰值。
此外,您現(xiàn)在可以使用 CTRL + 滾輪或在 macOS 上捏合手勢進(jìn)行放大和縮小,當(dāng)縮放級別更改時,遙測將保留當(dāng)前光標(biāo)位置。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn