原創|產品更新|編輯:鄭恭琳|2021-02-24 09:44:26.053|閱讀 1272 次
概述:JProfiler 12.0引入了火焰圖,可以方便地在上下文菜單中添加和刪除著色。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
JProfiler 12.0引入了以下顯著的新功能:
1、火焰圖已添加。所有顯示調用樹的視圖都可以替換為火焰圖,在一張圖像中顯示調用樹的全部內容。調用從火焰圖的底部發出,并向頂部傳播。
火焰圖被實現為調用樹分析,并嵌套在當前調用樹視圖下方。通過在調用樹中選擇一個節點,可以為火焰圖設置初始根節點。
子節點按字母順序排序,并以其父節點為中心。由于在每個節點上花費的自學時間,“火焰”逐漸向頂部變窄。有關節點的更多信息顯示在工具提示中。
火焰圖具有很高的信息密度。您可以放大感興趣的區域,或通過雙擊它來設置新的根節點。如果連續更改根多次,則可以在根歷史中再次移回。
分析火焰圖的另一種方法是根據類名稱,程序包名稱或任意搜索詞添加顏色。第一個匹配的著色用于每個節點。
可以方便地在上下文菜單中添加和刪除著色。
除了著色之外,您還可以使用快速搜索功能來查找感興趣的節點。使用光標鍵可以在顯示當前突出顯示的匹配的工具提示時,在匹配結果之間循環。
火焰圖不僅可用于頂級調用樹視圖,而且還可用于其他調用樹分析的結果,例如“Collapsed遞歸”。
2、對Netty的支持已添加。先前的“Servlet”探針和Netty功能已合并到新的“HTTP Server”探針中。
如果您正在運行基于Netty的Web服務器(例如Spring Reactor,Vertx或Ktor),則HTTP Server探針將為您顯示攔截的URL,其中包含調用計數及其總和平均處理時間。
HTTP Server探針的事件視圖可以按時間順序列出單個URL攔截。
就像Servlet容器一樣,調用樹針對每個URL進行了拆分,因此您可以分別查看關聯的子樹。
為了確定拆分的粒度以及顯示的URL,除了Servlet腳本之外,HTTP服務器探針的探針設置現在還提供了通用的拆分腳本。
與提供來自Servlet API的HttpRequest對象作為參數的Servlet腳本不同,Netty環境在使用幾個不兼容的API時不穩定。這就是JProfiler通過其自己的API提供HttpRequest參數以提供對常見請求屬性的訪問的原因。高級用例可以通過getRequestObject()方法獲取底層的Netty請求對象。
與Servlet腳本一樣,您可以配置腳本列表以在調用樹中創建多個嵌套的拆分級別。提供了一些用于常見任務的腳本模板。
Netty主要用于HTTP請求的異步處理。由于相關聯的線程更改,調用樹中URL下方的子樹將不會顯示對請求的完整處理。
使用JProfiler中的異步請求跟蹤功能,您可以遵循整個執行流程。大多數框架(例如Spring Reactor)都使用執行程序進行異步處理,因此必須激活“執行程序”請求跟蹤類型。如果您使用的是基于Kotlin協程的服務器(如Ktor),則“Kotlin協程”是必需的跟蹤類型。
如果使用了異步跟蹤,則調用樹視圖將建議在視圖頂部以及發起異步調用的調用站點上內聯異步執行。
然后,“內聯異步執行”分析的結果將包含所有涉及線程的單個調用樹,該調用樹向您顯示特定請求URL的全部處理,并針對所有匹配的請求進行累計。
3、SSH遠程附加功能現在支持附加到在Docker容器中運行的JVM。
首先使用快速連接功能和到遠程Linux機器的SSH隧道。
最初,列出了直接在遠程計算機上運行的JVM進程。遠程附加對話框頂部的一行顯示了當前選定的遠程Docker容器。
通過切換容器超鏈接,您可以選擇一個正在運行的Docker容器。
選擇Docker容器后,將顯示其中運行的所有JVM。然后,JProfiler將使用Docker命令在選定的容器中自動安裝性能分析代理,準備進行性能分析的JVM并將性能分析協議傳輸到外部。
如果SSH登錄用戶不在docker組中,則可以先切換遠程用戶。
4、附加功能已通過多種方式進行了改進。
現在,在“附加”對話框中顯示了使用“-agentpath” VM參數進行概要分析的JVM,用于本地和遠程附加。這些JVM在啟動時正在等待JProfiler GUI的連接。在這種狀態下,JVM中的常規附加機制尚不可用,因此必須實現替代的附加機制。
以前,連接到遠程計算機時,JRE必須可供登錄用戶使用,否則連接將失敗。從此發行版開始,JVM列表中會顯示一條消息,其中包含一個超鏈接,用于手動輸入JRE的路徑。這樣,您可以切換到可以訪問JRE的用戶,也可以切換到包含JRE的Docker容器。
以前,在遠程計算機上更改用戶時,無法拍攝HPROF快照。在此版本中,已實現了一種在帳戶之間傳輸堆轉儲數據的方法,并且現在啟用了“僅堆轉儲”操作。
5、通過類加載器對類進行分組的檢查已添加到堆遍歷器中。此檢查對java.lang.Class對象進行分組,并且與可以通過其類加載器對實例進行分組的現有檢查互補。
檢查的結果可以包括其java.lang.Class對象包含在當前對象集中的類,也可以包括在當前對象集中具有實例的類。
在頂部的分組表中選擇類加載器時,相應的java.lang.Class對象顯示在下面的數據視圖中。
6、現在支持Jakarta EE 9。Jakarta EE 9將API的軟件包從javax.*切換到jakarta.*。JProfiler現在支持“HTTP服務器”探針的舊軟件包和新軟件包。
在JProfiler UI中編寫URL拆分腳本時,可以使用javax.servlet.http.HttpServletRequest請求對象作為參數。如果配置文件容器支持Jakarta EE 9,則對Servlet API的調用將透明地轉換為jakarta.servlet.命名空間。
7、NetBeans插件已得到改進。已添加操作以附加到正在運行的JVM。這對于分析不使用exec插件的Maven項目以及JProfiler插件無法將VM參數插入Java調用的Gradle項目尤其重要。
添加了首選項頁面,您可以在其中調整JProfiler可執行文件以及用于打開新的性能分析會話的窗口策略。所有其他設置在會話啟動對話框中仍然可用,并分別為每個NetBeans項目保存。
8、JProfiler具有新的跨平臺光照模式。這是IntelliJ IDEA平臺的新外觀。
9、已添加到簡體中文的本地化版本。如果您的計算機的語言環境是zh_CN”,則安裝程序將自動選擇它,否則您可以在常規設置對話框中切換語言。
10、添加了對Alpine Linux上的配置文件的支持。Alpine Linux因其較小的映像尺寸而特別受Docker歡迎。它使用與其他Linux發行版不同的C標準庫,因此本機性能分析代理需要單獨的端口。
從此發行版開始,JProfiler中包含musl-x64體系結構。
11、已添加對macOS ARM上的配置文件的支持。雖然可以通過Rosetta在基于ARM的新macOS機器上對為x86架構編譯的JVM進行性能分析,但直接為新ARM架構直接編譯的新JVM需要不同的本機性能分析代理。
從此版本開始,macOS配置文件代理是通用二進制文件,其中包含針對x64和ARM64的實現。
在12.0版本發布時,JProfiler尚未與ARM JRE捆綁在一起,因此JProfiler GUI將通過Rosetta在macOS ARM機器上運行。預計將在相應的JRE可用后不久發布包含ARM JRE的版本。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn