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