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