分析J2SE和J2EE的Java剖析程式JProfiler

拂面柔風發表於2022-07-03

JProfiler是一個全功能的Java剖析工具,它不僅可以用於檢查和跟蹤系統整體的效能,還支援將軟體作為外掛組合到強大的應用程式中,提供多種ide和應用伺服器整合的實用型途徑,同時在軟體自帶的視覺化gui介面我們可以直觀的瞭解到應用程式所存在的效能瓶頸以及記憶體漏失,JProfiler的GUI可以讓你方便的找到效能瓶頸、記憶體洩漏(memory leaks)、並解決執行執行緒的問題。JProfiler是一個功能強大的工具,您可以使用它以動態的方式分析基於Java的應用程式,並使您能夠分析它們,從而最佳化效能。

JProfiler mac軟體特色

實時分析本地會話

一旦定義了應用程式的啟動方式,JProfiler就可以對其進行概要分析,並立即從配置的JVM中檢視實時資料。為了消除對會話配置的需要,您可以使用 眾多IDE外掛中的一個來從您喜歡的IDE中分析應用程式。

實時分析遠端會話

透過修改java start命令的VM引數,您可以讓任何Java應用程式從JProfiler GUI中偵聽連線。配置檔案應用程式不僅可以在本地計算機上執行,JProfiler還可以透過網路連線到配置檔案應用程式。此外,JProfiler 為所有流行的應用程式伺服器提供了 大量的整合嚮導,可幫助您設定應用程式以進行效能分析。

離線分析和觸發器

您不必將JProfiler GUI連線到配置檔案應用程式以對其進行分析:使用 離線分析, 您可以使用JProfiler強大的觸發系統或JProfiler API來控制分析代理並將快照儲存到磁碟。稍後您可以在JProfiler GUI中開啟這些快照,或使用命令列匯出工具或匯出ant任務以程式設計方式匯出概要分析檢視。

快照比較

在JProfiler中,您可以將所有當前效能分析資料的快照儲存到磁碟。JProfiler提供了豐富的比較工具,可以檢視兩個或更多快照之間發生了哪些變化。或者,您可以使用命令列比較工具或比較ant任務以程式設計方式建立比較報告。

檢視HPROF快照

JProfiler可以開啟已使用jVMsole或jmap等JVM工具或由-XX:+ HeapDumpOnOutOfMemoryError JVM引數觸發的HPROF快照。

請求跟蹤

憑藉創新的請求跟蹤概念,JProfiler可以更輕鬆地分析並行和多執行緒程式設計。請求跟蹤透過呼叫樹檢視中的超連結將呼叫站點與不同執行緒之間的執行站點連線起來。可以跟蹤以下多執行緒系統:

來自java.util.concurrent包的執行程式

Kotlin協同程式

AWT活動

SWT活動

執行緒開始

此外,如果在JProfiler中分析和開啟兩個JVM,JProfiler可以跟蹤跨JVM邊界的呼叫。可以跟蹤以下遠端呼叫。

HTTP請求

RMI打電話

Web服務呼叫

遠端EJB呼叫

輕鬆建立自定義探針 JProfiler提供了一個自定義探針嚮導,允許您直接在JProfiler GUI中定義自定義探針。您的自定義探針由JProfiler部署到配置檔案應用程式,您甚至不必在更改或新增自定義探針時重新啟動配置檔案應用程式。以下是JProfiler中概要分析檢視的高階概述:

記憶體分析

JProfiler的記憶體檢視部分提供有關記憶體使用情況的動態更新檢視,以及顯示有關分配點的資訊的檢視。所有檢視都有多個聚合級別,可以顯示實時和垃圾回收物件

所有物件

顯示堆上所有物件的類或包,包含例項計數和大小資訊。您可以標記當前值並顯示差異。

錄製的物件

顯示所有記錄物件的類或包。您可以標記當前值並顯示差異。

分配呼叫樹

顯示一個呼叫樹或方法,類,包或Java EE元件,其中包含所選類的帶註釋的分配。

分配熱點

顯示分配所選類的方法,類,包或Java EE元件的列表。您可以標記當前值並顯示差異。可以為每個熱點顯示回溯樹。

類跟蹤器

顯示一個時間線,其中包含所選類的例項計數圖。

堆沃克

在JProfiler的堆walker中,您可以透過執行選擇步驟獲取堆的快照並深入檢視感興趣的物件。堆walker有五個檢視:

顯示所有類及其例項。

分配

顯示記錄物件的分配樹和分配熱點。

最大的物件

顯示阻止堆的最大部分被垃圾收集的物件。可以擴充套件支配樹以顯示這些保留的物件。

參考

顯示具有原始資料的單個物件的傳出引用和帶有“顯示垃圾收集器根路徑”功能的傳入引用。還提供傳入和傳出引用的累積檢視。在傳出引用檢視中,您可以應用篩選器。有兩種不同的過濾器型別:按原始值過濾和使用指令碼過濾。

資料

顯示單個物件的例項和類資料。

時間

顯示記錄物件的時間分辨直方圖。

檢查

在檢查檢視中,您可以對當前物件集執行多個檢查,以便以各種方式分析物件。

圖形

在圖中,您可以新增來自不同物件集的物件,並透過開啟傳入和傳出引用,查詢所選物件之間的路徑以及顯示垃圾收集器根的路徑來探索它們之間的關係。

CPU分析

JProfiler提供了各種記錄呼叫樹的方法,以最佳化效能或細節。可以為所有檢視選擇執行緒或執行緒組以及執行緒狀態。可以在方法,類,包或Java EE元件級別上聚合所有檢視。CPU檢視部分包含:

呼叫樹

顯示JVM中所有已記錄呼叫序列的累積自上而下的樹。JDBC,JMS和JNDI服務呼叫被註釋到呼叫樹中。可以將呼叫樹拆分為不同的請求URL到servlet或JSP。您可以標記“異常方法執行記錄”的方法,並分別檢視最慢的呼叫。透過請求跟蹤,您可以將呼叫站點連線到多執行緒應用程式中的執行站點。

熱點

顯示最耗時的方法列表。可以為每個熱點顯示回溯樹。

呼叫圖

顯示從所選方法,類,包或Java EE元件開始的呼叫序列圖。

方法統計

顯示有關所有方法的呼叫時間分佈的統計資訊以及可用於發現異常值的呼叫時間分佈圖。

呼叫追蹤器

顯示按執行緒,包和類分組的方法呼叫的記錄時間順序跟蹤。

執行緒分析

對於執行緒分析,JProfiler提供以下檢視:

執行緒歷史

顯示具有執行緒活動和執行緒狀態的時間線。

執行緒監視器

顯示所有活動執行緒及其當前活動的列表。

執行緒轉儲

您可以線上程轉儲檢視中進行多個執行緒轉儲並對其進行分析。

監控分析

對於監視器分析,JProfiler提供以下檢視:

當前鎖定圖

顯示JVM中所有等待和阻塞情況的圖表。

電流監視器

顯示當前使用的監視器及其關聯的執行緒。

鎖定歷史圖表

以圖形形式顯示記錄的等待和阻止情況的歷史記錄。

監控歷史記錄

顯示記錄的等待和阻止事件的歷史記錄。

監控使用情況統計

顯示按監視器,執行緒和監視器類分組的監視器的統計資訊。

VM遙測

為了觀察JVM的內部狀態,JProfiler提供了各種遙測檢視:

顯示一個時間線,其中包含已使用堆和堆大小的圖形。

錄製的物件

顯示一個時間線,其中包含已記錄的活動物件和陣列的圖形。

記錄的吞吐量

顯示時間線,其中包含已記錄物件的物件建立和垃圾回收率的圖表。

GC活動

顯示帶有垃圾收集器活動圖表的時間線。

顯示帶有已載入類圖的時間線。

主題

顯示帶有活動執行緒圖的時間線。

CPU負載

顯示時間線,其中包含已配置應用程式生成的CPU負載的圖表。

資料庫

JProfiler支援以下資料庫的特定探測:

JDBC

JPA / Hibernate

MongoDB的

卡桑德拉

HBase的

JEE和探針

JProfiler提供探針:

JDBC

JPA / Hibernate

ETC.

JNDI

RMI

網頁服務

Servlet的

套接字

流程

探針顯示以下資訊:

時間線

在時間線檢視中,探針將其控制物件顯示為沿時間軸的彩色條。控制元件物件是與單個探測事件關聯的長壽命物件。例如,在JDBC探針中,控制物件是資料庫連線。時間線條上的顏色對應於控制物件可以處於的不同狀態。

控制物件

有關控制物件的表格詳細資訊顯示在控制物件檢視中。它顯示有關控制物件的更多詳細資訊以及記錄事件的統計資訊,例如檔案I / O的總吞吐量。透過過濾器控制元件和底部的匯流排,您可以對控制元件物件的子集進行快速求和。某些探針在巢狀表中顯示其他詳細資訊,您可以在其中開啟一個對話方塊,以更詳細地顯示有趣的多行值。例如,程式的命令列引數可能非常長。

熱點

在熱點檢視中,探針顯示由執行時間排序的探測事件釋出的有效負載名稱的熱點。例如,檔案探針顯示檔名,JDBC探針顯示SQL字串,JNDI探針顯示查詢。每個熱點都可以擴充套件,以顯示有助於熱點的背景痕跡。

遙測資料

在遙測檢視>中,您可以看到探測器釋出的各種遙測。

活動

事件檢視顯示探測器記錄的單個事件。事件具有執行緒和堆疊跟蹤資訊,您可以輕鬆跳轉到關聯的控制物件。同樣,過濾器和總行允許您對所選事件求和。

分析J2SE和J2EE的Java剖析程式JProfiler來源於:%3D

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70018369/viewspace-2903999/,如需轉載,請註明出處,否則將追究法律責任。

相關文章