以獨立模式側寫應用程式
您可以在獨立模式下側寫應用程式(也就是從指令行執行),不需安裝 Hyades 工具。不過,您需要將 Agent Controller 安裝在要側寫的應用程式所在的機器上。
您以獨立模式側寫應用程式的方法是呼叫 Java 側寫代理程式,它是一個連接於 Java 虛擬機器 (JMV) 的程式庫,用來擷取和記錄 Java 應用程式的行為。
該代理程式的輸出格式為 XML 片段。
請利用 -Xrun Java 選項來呼叫 Java 側寫代理程式:
-XrunpiAgent:agent_parm[,agent_parm]*
比方說,如果要利用 myFilters.txt 檔中定義的過濾器,將側寫階段作業的資料導向名為 PEProfilingData 的檔案中,
以此來側寫 PerformanceExample.java,您要在指令行中輸入下列指令:
java
-XrunpiAgent:server=standalone,filters=myFilters.txt,file=PEProfilingData.trcxml
PerformanceExample
- 藉由增加 -XrunpiAgent 參數,您可以指定數種不同的模式來執行側寫代理程式。參數 agent_parm 可採用下列其中一個值:
- server=[standalone | enabled | controlled | application]
- standalone
- 側寫代理程式是在無標題模式下執行的,這表示您不可能從工作台與它交談。
配置資訊是由配置檔來提供的,側寫代理程式會將側寫資料直接儲存在檔案中。
之後,可以在未來將側寫檔匯入工作台中。
- Java 側寫代理程式是以手動方式來連接至 JVM 實例,且會在輸出檔中產生側寫資料。
預設輸出檔稱為 trace.trcxml,但您可以利用 file=filename 參數來指定不同的檔案名稱。
當選取這個選項時,Java 側寫代理程式會產生用來含括的 traceRoot 元素,以形成完整而有效的 XML 文件。
- enabled(這是預設值。)
- 側寫代理程式是在 JVM 背景中執行的,它要等到工作台連接它並要求開始監視之後,才會開始耗用資源。
之後,就會在 Agent Controller 資料通道中傳送資料,供工作台使用。
也就是說,這會載入 Java 側寫代理程式,讓應用程式能夠正常執行,但在用戶端連接到代理程式以提供指示之前,不會產生任何側寫資料。
當選取這個選項時,Java 側寫代理程式只會產生 XML 片段,不會產生完整的 XML 文件。
- controlled
- 側寫代理程式會從起始設定開始先佔 JVM(載入代理程式,但代理程式會阻止應用程式的執行),直到工作台連接它,且用戶端提供開始監視的指令為止。
也就是說,當側寫代理程式採控制 (controlled) 模式來啟動時,它會表現出懸置 JVM 的情況,直到要求它開始監視為止,它只會產生 XML 片段,不會產生完整的 XML 文件。
- application
- 這會載入 Java 側寫代理程式,讓它在背景中執行,使應用程式能夠如同在啟用 (enabled) 模式中正常執行。
- 它只會在符合兩個條件時,才產生側寫資料。首先,應用程式必須已利用 org.eclipse.hyades.collection.profiler.Profiler 來要求側寫代理程式開始進行側寫;其次,工作台的測試用戶端必須已連接至 Java 側寫代理程式,且已開始監視。
- 附註:所有側寫都是應用程式利用 org.eclipse.hyades.collection.profiler.Profiler 類別來控制的。
- filters=filename
只有在指定了 server=standalone 時才使用。
指定側寫階段作業期間要用的起始類別過濾器定義所在的檔案名稱。預設檔案名稱是現行目錄中的 filters.txt。請參閱下文,以取得檔案格式的相關資訊。
- file=filename
只有在指定了 server=standalone 時才使用。
指定側寫資料要寫入其中的檔案名稱。預設值是現行目錄中的 trace.trcxml。
- help
在標準輸出中顯示一份清單,列出可用的代理程式選項。
類別過濾器檔案的格式
檔案格式如下:
pattern mode
其中:
- pattern
- 這是一個沒有內嵌空格的字串。這個字串的開頭或結尾可以使用單一星號 (*)。* 會比對零個或多個字元,可以使型樣成為通用的字首或字尾型樣。您也可以指定單獨一個 * 來代表所有字串。
- mode
- 指定符合型樣的類別是要併入側寫中或被排除在外。mode 的值可以是 INCLUDE 或 EXCLUDE。
過濾器型樣會依指定的次序來處理,直到第一個 型樣找到相符者為止。如果類別名稱不符合任何指定的過濾器型樣,預設值就是併入 (INCLUDE) 類別。
Java 側寫代理程式控制
當設定 server=enabled 或 server=controlled 參數來啟動 Java 側寫代理程式時,與代理程式的通訊是透過主機中的 Agent Controller,利用用戶端工作台來進行的。
附註:
- 如果您沒有在指令行中指定過濾器定義檔名稱,Java 側寫代理程式會試圖從現行目錄的 filters.txt 檔中讀取過濾器。
如果 filters.txt 檔不存在,
則在側寫階段作業期間不會使用過濾器。
如果您有指名過濾器檔案 filters.txt 並將它放在現行目錄中,則不需要在指令
行為側寫代理程式要使用的過濾器指定過濾器參數。
- 如果您未指定側寫資料的輸出檔,它將儲存在 trace.trcxml 檔。
- 您不必指定輸出檔的副檔名。它會自動取得副檔名 .trcxml
- 您不必指定 Java 應用程式的副檔名。它可以是 .class 檔。
相關概念
側寫工具總覽
側寫資源
「側寫監視器」視圖
「日誌」視圖
相關作業
啟動或連接 Java 程序
使用代理程式
開啟多個「側寫和日誌記載」視景
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.