Identity Manager 提供效能評測器公用程式,協助您對部署中與表單、Java、規則、工作流程與 XPRESS 相關的效能問題進行疑難排解。
表單、Java、規則、工作流程與 XPRESS 皆可能導致效能與範圍問題。效能評測器會評測不同區域所耗用的時間,可讓您決定這些表單、Java、規則、工作流程或 XPRESS 物件是否造成效能與範圍問題,以及倘若如此,是這些物件的哪些部分導致問題。
本節說明如何使用 Identity Manager 效能評測器,並提供指導以協助您瞭解如何對部署中的效能問題進行疑難排解。
此資訊分為以下主題:
僅 7.1 Update 1 版及較新版本支援 Identity Manager 效能評測器。
本節提供 Identity Manager 效能評測器的特性與功能簡介。相關資訊編排如下:
您可以使用效能評測器公用程式執行以下作業:
建立效能評測資料的「快照」。
快照是自從上次重設所有收集的效能評測結果以來,所累計的效能評測結果。
使用四種不同的資料檢視顯示快照結果:
[呼叫樹狀結構檢視] 提供樹狀結構表格,顯示整個系統的呼叫計時及呼叫計數。
[Hotspots 檢視] 提供直列式節點清單,顯示所有父系節點的集合呼叫計時。
[Back Traces 檢視] 提供顛倒的呼叫堆疊,顯示呼叫此節點 (稱為根節點) 的所有來源呼叫鏈。
[被呼叫端檢視] 提供根節點的彙總呼叫樹狀結構,而不考慮其父鏈為何。
指定快照中要包含的資訊種類:
您可以包含表單、工作流程與 XPRESS 的每個元素,或將內容限制在特定的一組元素。
您可以挑選特定的 Java 方法及建構子,以納入方法或從方法排除。支援 Identity Manager 類別與自訂類別的方法。
使用下列方式管理專案快照。
在專案的 nbproject/private/idm-profiler 目錄或專案外部的任意位置儲存快照。
您可以在 IDM 效能評測器檢視的 [已儲存的快照] 區段中,檢視所有儲存的快照清單。
從專案開啟快照,或從專案外部的任意位置載入快照。
刪除快照。
依名稱搜尋特定節點。
本節說明效能評測器如何查找及管理下列 Identity Manager 物件的來源:
在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中,您可以連按兩下對應 Java 方法、工作流程、表單、規則或 XPRESS 的任何節點,以檢視此節點的來源。
當您使用效能評測器拍攝快照時,伺服器會計算所有效能評測資料並搜尋資料依賴的來源。伺服器接著會從儲存庫擷取所有這些來源,並將其納入快照中。因此,您可以確定快照中所顯示的 Identity Manager 物件,能確實反映擷取快照當時的狀況。
此程序會增加快照的大小,但來源大小實際上只佔總大小的一小部分。因此,您可以將快照傳送給 Sun 的客戶支援部門,而不用另外傳送原始碼檔案。
當您拍攝 Java 來源的快照時,用戶端會下載快照,然後搜尋快照以從專案擷取所有參照的 Java 來源。當您儲存快照時,用戶端會壓縮來源並將其附加在快照結尾。
然後,當您檢視快照並移至 Java 來源時,用戶端會先檢查快照內容。如果用戶端在此找不到內容,則會檢查專案的內容。此程序可讓您從自訂 Java 程式碼與 Identity Manager 程式碼傳送包含效能評測資料的快照。
在 Java 來源快照中,請勿以為來源會隨伺服器更新或一直可以使用。
以下各節包含計算效能評測器提供結果時所要考量的資訊:
若要計算根節點的 Self Time 統計,效能評測器會從根節點的總計時間扣除所有子節點的時間。
因此,未執行的子節點時間會反映在根節點的 Self Time 中。如果根節點有很長的 Self Time,則必須找出原因。您可能尚未執行適當的方法,因此檢查的地方有誤。
例如,假設方法 A 呼叫方法 B。
方法 A 總計需要 10 秒 (其中總計時間包含呼叫 B),而呼叫 B 總計需要 10 秒。
如果 A 與 B 皆已執行,則呼叫堆疊會反映此資訊。您會看到 A 的 Self Time 為 0 秒,而 B 的 Self Time 為 10 秒 (其中 10 秒是實際用在 B 中的時間)。但是,如果未執行 B,您僅會看到呼叫 A 需要 10 秒,因此 A 的 Self Time 為 10 秒。因此,您可能會以為問題是在 A,而不是在 B。
您尤其會在 JSP 初始編譯期間注意到 JSP 有很長的 Self Time。如果重設收集的結果,然後重新顯示頁面,則 Self Time 值會少得多。
由於 Java 方法策略的限制,對 this() 或 super() 的初始呼叫會顯示為建構子呼叫的同層呼叫,而非子項呼叫。請參閱下列範例:
class A { public A() { this(0); } public A(int i) { } } and: class B { public static void test() { new A(); } } The call tree will look like this: B.test() -A.<init>(int) -A.<init>() Rather than this: B.test() -A.<init>() -A.<init>(int) |
多數 Identity Manager 的常駐程式執行緒 (例如 ReconTask.WorkerThread.run() 或 TaskThread.WorkerThread.run()) 所耗用的時間看似很久,但請勿被此誤導。大部分的時間是耗用在等候事件時的暫停上。您必須研究這些追蹤才能知道處理事件實際耗用的時間。
本節說明如何啟動效能評測器,以及如何使用效能評測器圖形化使用者介面的各項功能。相關資訊編排如下:
由於效能評測器會耗用大量的記憶體,應大量增加伺服器與 Netbeans Java Virtual Machine (JVM) 的記憶體。
若要增加伺服器的記憶體:
開啟 Netbeans 視窗並選取 [執行階段] 標籤。
展開 [伺服器] 節點,在 [隨附的 Tomcat] 上按一下滑鼠右鍵,然後從功能表中選取 [特性]。
請在顯示 [伺服器管理員] 對話方塊時,清除 [連線] 標籤上的 [啟用 HTTP 監視] 方塊。
選取 [平台] 標籤,將 [VM 選項] 設定為 -Xmx1024M,然後按一下 [關閉]。
若要增加 Netbeans JVM 的記憶體:
開啟 netbeans-installation-dir \etc\netbeans.conff 檔案並找出下行:
netbeans_default_options="-J-Xms32m -J-Xmx ...
將 -J-Xmx 值變更為 -J-Xmx 1024M。
儲存然後關閉檔案。
完成之後,可如下節所述啟動效能評測器。
您可以使用下列任一方法從 Identity Manager IDE 視窗啟動效能評測器:
按一下功能表列中的 [在主專案上啟動 Identity Manager 效能評測器] 圖示。
當 Identity Manager 的主專案為 7.1 Update 1 版或較新版本時,會啟用 [在主專案上啟動 Identity Manager 效能評測器] 圖示。
從功能表列中選取 [視窗] -> [IDM 效能評測器]。
檔案總管中隨即會顯示 [Identity Manager 效能評測器] 視窗。在此視窗中,從 [目前的專案] 下拉式功能表中選取一個 Identity Manager 專案,然後按一下位於 [控制] 區段的 [啟動 Identity Manager 效能評測器] 圖示。
在 [專案] 視窗中的專案上按一下滑鼠右鍵,然後從快顯功能表中選取 [啟動 Identity Manager 效能評測器]。
在 [專案] 視窗中選取一個專案,然後從功能表列中選取 [IDM] -> [啟動 Identity Manager 效能評測器]。
當您啟動效能評測器時,會顯示 [效能評測器選項] 對話方塊,您可以在此指定要使用的效能評測選項。指定效能評測器選項提供設定這些選項的說明。
本節描述效能評測器圖形化使用者介面的功能,以及如何使用這些功能。相關資訊編排如下:
[效能評測器選項] 對話方塊包含下列標籤:
使用這些標籤上的選項以指出要評測效能的物件及設定檔中要顯示的元素。
指定效能評測器選項之後,請按一下 [確定] 以啟動效能評測器。效能評測器可根據專案配置執行下列兩項作業其中之一:
如果搭配內嵌式 Identity Manager 實例使用一般 Identity Manager 專案,效能評測器會執行完整建置、在 NetBean 的應用程式伺服器中進行部署,以及啟動效能評測器。
如果搭配外部 Identity Manager 實例使用一般 Identity Manager 專案或使用遠端 Identity Manager 專案,效能評測器會附加至為此專案配置的 Identity Manager 實例。
您可以選取 [IDM] -> [設定 Identity Manager 實例],以控制此專案的 Identity Manager 實例動作。
[模式] 標籤提供下列選項:
僅限 IDM 物件:選取此選項可評測表單、規則、工作流程與 XPRESS 物件的效能。排除設定檔中的 Java 物件。
Java 與 IDM 物件:選取此選項可評測表單、Java、規則、工作流程與 XPRESS 物件的效能。
如果搭配外部 Identity Manager 實例使用一般 Identity Manager 專案或使用遠端 Identity Manager 專案,則無法使用 [Java 與 IDM 物件] 選項。
效能評測器執行時,無法變更 [模式] 選項。您必須停止效能評測器才能變更此選項。
[IDM 物件篩選器] 標籤提供下列選項:
顯示 IDM 物件詳細資訊
包含匿名來源
匿名來源是動態產生的表單或表單的一部分 (例如 Login 表單與 MissingFields 表單),與 Identity Manager 儲存庫中的永久性表單有所不同。
選取此核取方塊可在快照中包含匿名來源。
清除此核取方塊可排除快照中的匿名來源。
選取 [Java 篩選器] 標籤可執行下列作業:
包含或排除 Java 篩選器
建立新的篩選器
刪除現有的篩選器
復原預設的篩選器
Java 篩選器會依方法式樣提供,並以包含或排除的式樣來表示 (根據標準方法名稱)。其中標準方法名稱為:
fully-qualified-class-name.method-name( parameter-type-1, parameter-type-2, ... )
若是建構子,則 method-name 為 <init>。
下列是一些範例:
若要排除所有建構子,請啟用 [排除] 方塊並增加下列篩選器:
*.<init>(*)
若要排除所有含單一 org.w3c.dom.Element 參數的建構子,請啟用 [排除] 方塊並增加下列篩選器:
*.<init>(org.w3c.dom.Element)
若要排除所有 Identity Manager 類別,請啟用 [排除] 方塊並增加下列篩選器:
"com.waveset.*" "com.sun.idm.*"
若僅要執行自訂的程式碼,請啟用 [排除] 方塊,移除初始 * include 篩選器,然後增加下列篩選器:
"com.yourcompany.*"
由於篩選器僅會套用至自訂類別與 Identity Manager 類別,因此最後兩個範例目前是等同的。
請視需要適當修改 build.xml 中的下列各行,以執行其他 JAR。例如,
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
依預設,配置會包含所有自訂類別與大部分的 Identity Manager 類別。由於某些 Identity Manager 類別在啟用後會中斷效能評測器,因此會強制排除這些類別。
例如,會排除來源為工作流程、表單與 XPRESS 引擎的類別,否則效能評測器在評測 Java 與 Identity Manager 物件的效能時會產生無法辨識的快照。
請注意,Java 篩選器會提供比 IDM 物件篩選器更仔細的篩選。Java 方法會使執行作業增加大量的經常性耗用時間,從而嚴重影響效能評測結果。由於是對 Identity Manager 物件進行解譯而不是編譯,因此可忽略執行此方法所耗用的時間。因此,基本上排除工作流程 A 而包含工作流程 B 是不必要的,依此類推。
您無法在執行效能評測器時修改 Java 篩選器。您必須停止效能評測器,才能變更 Java 篩選器。
[其他] 標籤提供下列選項:
刪除執行時間為 0 的快照節點:
若要快照包含所有執行實體的呼叫資訊,甚至包含執行時間為零的執行實體時,請停用此選項 (預設值)。
取得呼叫數 (甚至沒有執行時間) 可能很實用。
啟用此選項可移除這些節點,讓您專注在最相關的效能評測資料上。此外,啟用此選項可顯著減小效能評測器快照的大小。
在效能評測器啟動時自動開啟瀏覽器:
當您要在啟動效能評測器時自動開啟瀏覽器,並指向要接受效能評測的 Identity Manager 實例時,請啟用此選項 (預設值)。
若不要開啟檔案總管,請停用此選項。
在快照中包含 Java 來源:
啟用此選項 (預設值) 可針對快照中效能評測資料參照的所有 Java 方法,包含其 Java 來源。您應該一律在欄位中使用此快照設定。自訂 Java 相對較小,而且在提供支援方面極有價值。
僅在評測 Identity Manager 的效能並具有完整的 Identity Manager 來源時,停用此選項。
在此情況下,由於 Identity Manager 來源會建立極大的快照,因此請勿包含此來源。(如需更多資訊,請參閱效能評測器查找及管理來源的方式。)
IDM 效能評測器檢視包含下列區域:
[目前的專案] 區域包含列出所有目前專案的下拉式功能表。使用此功能表可選取要評測其效能的專案。
[控制] 區域包含四個圖示,如下表所述:
圖示 |
名稱 |
用途 |
---|---|---|
|
啟動 Identity Manager 效能評測器 |
啟動效能評測器並開啟 [效能評測器選項] 對話方塊。 |
|
停止 Identity Manager 效能評測器 |
停止效能評測器。 |
|
重設收集的結果 |
重設到目前為止所收集的效能評測結果。 |
|
修改效能評測 |
重新開啟 [效能評測器選項] 對話方塊,以變更任何設定來修改目前的效能評測結果。 |
[狀態] 區域會報告是否已連線至主機,並提供效能評測器啟動、執行與停止的狀態資訊。
[效能評測結果] 區域包含兩個圖示,如下表所述:
圖示 |
名稱 |
用途 |
---|---|---|
|
啟動 Identity Manager 效能評測器 |
啟動效能評測器並開啟 [效能評測器選項] 對話方塊。 |
|
重設收集的結果 |
重設到目前為止所收集的效能評測結果。 |
[已儲存的快照] 區域提供所有儲存的快照清單。
儲存快照提供儲存快照的說明。
此外,您可以使用下列按鈕管理這些快照:
開啟:按一下此按鈕,即可在 [快照檢視] 視窗中開啟已儲存的快照。
您也可以在 [已儲存的快照] 清單中的快照上連按兩下,以開啟此快照。
刪除:選取 [已儲存的快照] 清單中的快照,然後按一下此按鈕以刪除選取的快照。
另存新檔:選取清單中的快照,然後按一下此按鈕以將此快照儲存至任意的外部位置。
載入:按一下此按鈕,即可在 [快照檢視] 視窗中開啟任意位置的快照。
當您開啟快照時,Identity Manager IDE 右上方的 [快照檢視] 視窗會顯示結果。
快照提供數種資料的檢視,以下各節將對此進行描述:
[呼叫樹狀結構檢視] 包含樹狀結構表格,顯示整個系統的呼叫計時及呼叫計數。
此樹狀結構表格包含三欄:
[Call Tree] 欄:列出所有節點。
頂層節點為下列其中之一:
系統中各種背景執行緒的 Thread.run() 方法
例如,若啟用 Java 效能評測,將會看到 ReconTask.WorkerThread.run() 方法。
請求計時
例如,若檢視 idm/login.jsp URL,將會看到 idm/login.jsp 的頂層項目。針對此項目,[Time] 欄中所顯示的資料表示請求的總時間。[Invocations] 欄中顯示的資料表示呼叫此頁面的總次數。您可以接著進一步研究此資料,以找出造成耗用這些時間的呼叫項目。
[呼叫樹狀結構] 也包含 [Self Time] 節點。[Self Time] 值表示節點本身會耗用的時間。(如需更多資訊,請參閱統計注意事項。)
[Time] 欄:列出從父系節點呼叫每個節點所耗用的時間,並指出與父系時間相較的百分比。
[Invocations] 欄:列出父系節點呼叫每個節點的次數。
[Hotspots 檢視] 提供直列式節點清單,顯示所有父系節點的集合呼叫計時。
此檢視包含下列欄:
Self Time:列出每個節點所耗用的總時間。
Invocations:列出父系節點呼叫每個節點的總次數。
Time:列出每個節點及其所有子節點所耗用的總時間。
[Back Traces 檢視] 提供顛倒的呼叫堆疊,顯示呼叫每個節點的所有來源呼叫鏈。
您可以使用這些統計回答以下問題:如果我省略此節點發出的此特定呼叫鏈,可以節省多少時間?
您可以在節點 (稱為根節點) 上按一下滑鼠右鍵,並從快顯功能表中選取 [顯示 Back Traces],以從任何其他快照檢視存取 [Back Traces] 檢視。
[Time] 與 [Invocations] 資料值在 [Back Traces] 檢視中有不同的含義:
Time:此欄中的值表示從指定呼叫鏈呼叫根節點時,在根節點中所費的時間。
Invocations:此欄中的值表示從指定呼叫鏈呼叫根節點的次數。
[被呼叫端檢視] 提供節點 (稱為根節點) 的彙總呼叫樹狀結構,而不考慮其父鏈為何。
如果從主要呼叫樹狀結構的許多位置呼叫的區域有問題,而您想檢視節點的整體設定檔,這些統計會很有幫助。
您可以在節點 (稱為根節點) 上按一下滑鼠右鍵,並從快顯功能表中選取 [顯示被呼叫端],以從任何其他快照檢視存取 [被呼叫端檢視]。
[被呼叫端檢視] 中所使用的 [Time] 與 [Invocations] 資料值,和 [呼叫樹狀結構] 檢視中所使用的資料值有相同含義。
在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中任何的節點上按一下滑鼠右鍵,會隨即顯示快顯功能表,內含下表所述的選項:
功能表選項 |
說明 |
---|---|
移至來源 |
選取此選項可檢視對應 Java 方法、工作流程、表單、規則或 XPRESS 之節點的 XML 來源。如需有關此檢視的詳細資訊,請參閱效能評測器查找及管理來源的方式。 |
顯示 Back Traces |
選取此選項可存取 [Back Traces] 檢視。如需有關此檢視的詳細資訊,請參閱Back Traces 檢視。 |
顯示被呼叫端 |
選取此選項可存取 [被呼叫端檢視]。如需有關此檢視的詳細資訊,請參閱被呼叫端檢視。 |
在 Hotspots 中尋找 |
選取此選項可在 [Hotspots 檢視] 中尋找節點。如需有關此檢視的詳細資訊,請參閱Hotspots 檢視。 |
清單選項 -> [排序] -> |
此選項有下列選項:
|
清單選項 -> [變更可見欄] |
選取此選項可變更 [呼叫樹狀結構] 或 [Hotspots] 清單中所顯示的欄。 您可以在 [變更可見欄] 對話方塊顯示時,選取下列一個或多個選項:1
|
使用 [快照檢視] 視窗頂端的 [搜尋] 圖示 ,在呼叫樹狀結構檢視或 Hotspots 樹狀結構中依名稱搜尋節點。
或者,在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中的任何節點上按一下滑鼠右鍵,然後從快顯功能表中分別選取 [在呼叫樹狀結構中尋找] 或 [在 Hotspots 中尋找] 以搜尋節點。
效能評測器提供數個儲存快照的選項。如需這些選項的描述,請參閱下表:
圖示 |
名稱 |
用途 |
---|---|---|
|
[在專案中儲存快照] 圖示 (位於 [快照檢視] 視窗頂端) |
在專案的 nbproject/private/idm-profiler 目錄中儲存快照。儲存在專案中的快照會列於效能評測器檢視的 [已儲存的快照] 區段中。 |
|
[在外部儲存快照] 圖示 (位於 [快照檢視] 視窗頂端) |
將快照另存在外部的任意位置。 |
|
[另存新檔] 按鈕 (位於 [已儲存的快照] 區域中) |
將快照另存在外部的任意位置。 |
Identity Manager 提供指導 (profiler-tutorial.zip) 以協助您瞭解如何使用效能評測器對表單、Java、規則、工作流程與 XPRESS 進行疑難排解。
使用下列步驟完成指導。
選取 [檔案] -> [新增專案]。
請在顯示 [新增專案] 精靈時指定下列項目,然後按 [下一步]:
填寫 [名稱與位置] 畫面上的下列欄位,然後按 [下一步]:
專案名稱:輸入 Idm80 作為專案名稱。
專案位置:使用預設位置或指定不同的位置。
專案資料夾:使用預設資料夾或指定不同的資料夾。
請在顯示 [Identity Manager WAR 檔案位置] 面板時,輸入 Identity Manager 8.1 war 檔案的位置。一般而言,解壓縮此檔案會在相同目錄中建立 idm.war 檔案。
按 [下一步] 繼續執行 [儲存庫設定] 畫面。
您應該不需要變更此面板上的預設設定,請直接按一下 [完成]。當您在 [Identity Manager IDE 輸出] 視窗中看到 BUILD SUCCESSFUL (建置成功) 訊息時,即可解壓縮效能評測器指導檔案。請參閱步驟 2:解壓縮效能評測器指導以取得說明。
解壓縮專案根目錄中的 profiler-tutorial.zip。解壓縮的檔案包含:
<project root>/custom/WEB-INF/config/ProfilerTutorial1.xml <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml <project root>/src/org/example/ProfilerTutorialExample.java <project root>/PROFILER_TUTORIAL_README.txt
啟動效能評測器。繼續執行步驟 3:啟動效能評測器。
使用開始之前中提供的說明,增加伺服器與 Netbeans JVM 的記憶體。
使用概況中所述的任何方法啟動效能評測器。
顯示 [效能評測器選項] 對話方塊時,可以指定效能評測選項。
繼續執行步驟 4:設定效能評測器選項。
如需有關所有不同效能評測器選項的詳細資訊,請參閱指定效能評測器選項。
若要使用此指導,請指定下列效能評測器選項:
在 [模式] 標籤上,選取 [Java 與 IDM 物件] 以評測表單、Java、規則、工作流程與 XPRESS 物件的效能。
選取 [Java 篩選器] 標籤。
使用下列步驟停用所有 Identity Manager Java 類別,但自訂 Java 類別 (在此案例中為 org.example.ProfilerTutorialExample) 除外:
按一下 [確定] 以執行效能評測器。
如果是第一次在專案上執行效能評測器,或最近執行過清除專案動作,則效能評測器需要幾分鐘才能完成。
當效能評測器完成處理時,系統會提示您登入。
輸入密碼 configurator,選取 [記住密碼] 方塊,然後按一下 [確定] 繼續。
請在顯示 Identity Manager 視窗時登入。
通常您應該以不同的使用者身份登入 Identity Manager,而不是再次以 configurator 登入。您已使用 configurator 的身份登入效能評測器,Identity Manager 階段作業池不允許使用者重複登入。登入多次可能造成階段作業池故障的假象,且可能扭曲細部效能問題的效能評測結果。
但是,針對此簡單的範例,階段作業區並不重要,因此您可以 configurator/configurator 登入。
在 Identity Manager 中,選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow1]。
此指導可能需要幾分鐘才會回應。
雖然您現在可拍攝快照,但目前請重設結果、執行效能評測器並再執行一次,然後拍攝快照。
執行效能評測器幾次再拍攝快照是最佳作法,如此可確保所有快取皆就緒、所有 JSP 都已編譯等。
多次執行效能評測器可讓您專注在實際的效能問題上。但如果您有快取寫入的問題,則不要如此做。
Identity Manager IDE 會下載快照並在視窗右側顯示結果。
此區域為 [呼叫樹狀結構] 檢視。在 [呼叫樹狀結構] 頂端,您會看到 /idm/task/taskLaunch.jsp,其 [Time] 欄中列有時間。此時間應表示整個請求耗用六秒以上。
展開 /idm/task/taskLaunch.jsp 節點,您會看到 ProfilerTutorialWorkflow1 耗用六秒。
展開 ProfilerTutorialWorkflow1 節點。請注意,activity2 耗用四秒,而 activity1 耗用兩秒。
展開 activity2。
請注意,action1 耗用兩秒,而 action2 耗用兩秒。
展開 action1,請注意 <invoke> 也耗用兩秒。
連按兩下 <invoke> 以開啟 ProfilerTutorialWorkflow1.xml,並反白顯示下行:
<invoke name=’example’ class=’org.example.ProfilerTutorialExample’/> |
您應該會看到呼叫 ProfilerTutorialExample 方法耗用兩秒。
您實際上會瀏覽快照中擷取的 XML 來源,而非專案中的來源。快照本身即具備所有資料。(如需更多資訊,請參閱效能評測器查找及管理來源的方式。)
選取 [CPU:<date>< time>] 標籤以返回快照。
展開 <invoke> 節點,請注意效能評測器在 Java ProfilerTutorialExample.example() 方法中耗用兩秒。
連按兩下方法名稱以開啟 ProfilerTutorialExample.java 來源,並反白顯示下行:
Thread.sleep(2000); |
發生問題!此方法包含兩秒的執行緒暫停。
若返回 [呼叫樹狀結構],您會看到所有兩秒的路徑都指向此方法。(您應該看到三個路徑;總計六秒。)
選取 [Hotspots] 標籤 (位於 [呼叫樹狀結構] 區域底部) 以開啟 [Hotspots] 檢視。請注意,ProfilerTutorialExample.example() 的總計 Self Time 為六秒。
(如需有關 Hotspots 的更多資訊,請參閱使用快照檢視。)
在 ProfilerTutorialExample.example() 上按一下滑鼠右鍵,然後從快顯功能表中選取 [顯示 Back Traces]。
新的 [Back Traces] 標籤會顯示在此區域底端。
展開 [Back Traces] 標籤上的 ProfilerTutorialExample.example() 節點,會看到有三處呼叫此方法,且從每處呼叫此方法都耗用兩秒。
(如需有關 Back Traces 的更多資訊,請參閱使用快照檢視。)
按一下 [在專案中儲存快照] 圖示以儲存並關閉快照。
如果您查看 [IDM 效能評測器] 標籤上的 [已儲存的快照] 區段,應該會看到您的快照。(您可能必須向下捲動。)
選取已儲存的快照,然後按一下 [開啟] 重新開啟快照。
您可以使用 [另存新檔] 按鈕在外部儲存快照,並使用 [載入] 按鈕從專案外部載入快照。
再次關閉快照。
此指導的下一個部分會說明如何評測工作流程 ManualAction 的效能。
在 Identity Manager 中,選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow2]。
在幾分鐘後,會顯示一個空白的表單。
按一下 [儲存],會隨即顯示進程圖。
再次選取 [伺服器作業] -> [執行作業]。
返回 Identity Manager IDE IDM 效能評測器檢視,然後在 [效能評測結果] 區段中,按一下 [重設收集的結果] 圖示。
現在按一下 Identity Manager 中的 [ProfilerTutorialWorkflow2]。
當空白表單再次顯示時,請按一下 [儲存]。
在 IDM 效能評測器檢視中,按一下 [拍攝快照]。
幾秒之後,快照應顯示在 [呼叫樹狀結構] 區域中。您應該會看到 /idm/task/workItemEdit.jsp 耗用六秒以上。(此結果會對應至工作流程中的手動操作。)
展開 /idm/task/workItemEdit.jsp 節點,並注意執行 ManualAction 表單中之所有 Derivation 的節點總計耗用六秒。
依序展開 Derivation、displayNameForm、variables.dummy 與 <block> 節點。
您應該會看到 <block> 耗用了六秒,其間效能評測器三次呼叫 ProfilerTutorialExample.example() 方法,每次呼叫耗用兩秒。
您可以連按兩下 <block> 以檢視來源。