天天看點

【JProfiler幫助2】架構

下面給出了涉及配置檔案應用程式,JProfiler UI和所有指令行實用程式的所有重要互動的大圖。

【JProfiler幫助2】架構

分析代理

“JVM工具接口”(JVMTI)是一個本機接口,分析器使用該接口來通路資訊并添加鈎子以插入自己的檢測。這意味着至少部分性能分析代理必須實作為本機代碼,是以JVM分析器不是獨立于平台的。JProfiler支援網站上列出的一系列平台 。

JVM概要分析器實作為本機庫,在啟動時或稍後某個時刻加載。要在啟動時加載它,VM參數

-agentpath:<path to native library>

将添加到指令行。您很少需要手動添加此參數,因為JProfiler将為您添加該參數,例如在IDE內建,內建向導或直接啟動JVM時。但是,重要的是要知道這是啟用性能分析的原因。

如果JVM成功加載本機庫,它會調用庫中的特殊函數,以使分析代理有機會初始化自身。然後,JProfiler将列印幾個字首的診斷消息,

JProfiler>

以便您知道分析處于活動狀态。最重要的是,如果傳遞 

-agentpath

VM參數,則成功加載概要分析代理或JVM不會啟動。

加載後,分析代理會要求JVMTI通知各種事件,例如線程建立或類加載。其中一些事件直接提供分析資料。使用類加載事件,分析代理在加載類時對類進行檢測,并插入自己的位元組碼以執行其測量。

JProfiler可以通過使用JProfiler UI或

bin/jpenable

指令行工具将代理加載到已經運作的JVM中 。在這種情況下,可能必須重新轉換大量已加載的類以便應用所需的檢測。

記錄資料

JProfiler代理僅收集分析資料。JProfiler UI單獨啟動,并通過套接字連接配接到配置檔案代理。這意味着,如果配置的JVM在本地計算機或遠端計算機上運作,​​則實際上無關緊要 - 配置檔案代理和JProfiler UI之間的通信機制始終相同。

在JProfiler UI中,您可以訓示代理記錄資料,在UI中顯示分析資料并将快照儲存到磁盤。作為UI的替代方案,可以通過其MBean來控制性能分析代理 。使用此MBean的指令行工具是

bin/jpcontroller

控制性能分析代理的另一種方法是使用一組預定義的觸發器和動作。以這種方式,分析代理可以在無人值守模式下操作。這在JProfiler中稱為“脫機性能分析”,對于自動化性能分析會話非常有用。

快照

雖然JProfiler UI可以顯示實時分析資料,但通常需要儲存所有記錄的分析資料的快照。快照可以在JProfiler UI中手動儲存,也可以通過觸發操作自動儲存。

可以在JProfiler UI中打開和比較快照。對于自動化處理,指令行工具 

bin/jpexport

bin/jpcompare

可用于提取資料,并建立從以前儲存快照HTML報告。

從正在運作的JVM擷取堆快照的低開銷方法是使用

bin/jpdump

 指令行工具。它使用JVM的内置功能來儲存可由JProfiler打開的HPROF快照,并且不需要加載分析代理。