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

2022-07-03     99mac

原標題:分析J2SE和J2EE的Java剖析程序JProfiler

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探針顯示查詢。每個熱點都可以擴展,以顯示有助於熱點的背景痕跡。

遙測數據

在遙測視圖>中,您可以看到探測器發布的各種遙測。

活動

事件視圖顯示探測器記錄的單個事件。事件具有線程和堆棧跟蹤信息,您可以輕鬆跳轉到關聯的控制對象。同樣,過濾器和總行允許您對所選事件求和。

Mac版來源於:https://www.macz.com/mac/1844.html?id=NzY4OTU4Jl8mMjcuMTg2LjEyNC4xODc%3D

win版:https://soft.macxf.com/soft/1574.html?id=MjkzNjc%3D

文章來源: https://twgreatdaily.com/zh-sg/edc1af71a59c7bb5143cd6541a87f484.html