跳轉到主要內容
Metrics 檢視是一個圖形化工具,可協助您分析大量資料,以快速找出與效能相關的關注區域,例如畫面時間中的極端值或非預期的記憶體配置。也可以在遊戲的不同部分之間,以及遊戲與系統之間找出關聯。 如需影片逐步解說,請參閱 PIX 時間擷取中的 Metrics 檢視。 Metrics 檢視中可以繪製各種類型資料的圖表,包括 CPU PIX 事件的持續時間、執行時間與停滯時間、GPU PIX 事件的持續時間、透過 PIXReportCounter 回報的計數器值,以及各種系統定義計數器的值。 預設的 Metrics 版面配置由下列檢視與面板組成: 預設 Metrics 版面配置中的檢視與面板 有幾種不同的方式可以存取 Metrics 檢視。首先,Timeline 中的多個位置可讓您在 Metrics 檢視中繪製 PIX 事件持續時間的圖表。Thread 通道、Core 通道與 Range Details 中的操作功能表提供此功能,Element Details 中的 Graph in Metric View 按鈕也提供此功能。選擇其中一個選項時,焦點會切換到 Metrics 檢視,並繪製所選 PIX 事件持續時間的圖表。 也可以直接在時間擷取中選取 Metrics 索引標籤來存取 Metrics 檢視。以這種方式存取 Metrics 檢視時,要繪製圖表的計量是使用檢視右側的 Selector 面板新增。 使用 Timeline 或 Selector 面板新增至圖表的計量,會被視為「作用中」計量。作用中計量清單會顯示在檢視底部的 Active Metrics 面板中。Metric Details 面板會與 Active Metrics 面板搭配使用,以自訂計量圖表的各個面向,包括其線條樣式與色彩。也可以使用 Metric Details 面板為每個計量定義效能預算。 Metrics 檢視中的 X 軸代表時間。檢視頂端的橫列標示從擷取開始到結束的時間。 Y 軸是目前所選計量的值。Y 軸的單位會依您所繪製的資料類型而有所不同。例如,繪製 CPU Busy% 等計數器時,單位是百分比。繪製 PIX 事件的持續時間、執行時間或停滯時間時,預設單位是奈秒。 將滑鼠指標停留在圖表中的計量上時,會顯示工具提示,顯示計量名稱、X 軸與 Y 軸的值,以及最小值、最大值與平均值等其他統計資料。 將滑鼠指標停留在計量上時顯示的工具提示 可以使用操作功能表釘選工具提示。釘選工具提示可讓您更容易同時比較多個點的值。 在 Metrics 檢視中釘選工具提示 如果繪製了多個計量,且其中有些計量的單位不同,則各種單位的名稱會顯示在檢視左側的面板中。下圖繪製了三個不同單位的計量:奈秒 (ns)、百分比 (%) 與位元組 (B)。選取單位方塊會將圖表的 Y 軸更新為該單位的最小值與最大值。將滑鼠指標停留在圖表中或 Active Metrics 面板中的計量上,也會更新 Y 軸的最小值與最大值。例如,將滑鼠指標停留在下圖中的 CPU 1 計量上時,Y 軸會更新為與該計量的 Y 軸值相符 (介於 0 到 100 之間)。 繪製具有不同單位的計量 可以自訂 PIX 事件與所有記憶體相關計量的顯示單位。例如,PIX 事件的持續時間、執行時間與停滯時間可以用毫秒而非預設的奈秒繪製。若要變更顯示單位,請選取 Y 軸上單位名稱旁的齒輪圖示。 變更 Metrics 檢視圖表中的顯示單位 Metrics 檢視提供與 Timeline 相同的方式,使用 Ctrl-滑鼠滾輪按鈕放大與縮小。此外,還提供操作功能表,可讓您將 Metrics 檢視縮放至所選範圍,或將 Timeline 縮放至所選範圍,如下圖所示。 將 Metrics 檢視縮放至所選範圍或縮放 Timeline Metrics 檢視的典型用法是使用圖表找出關注區域,然後將 Timeline 縮放至該範圍,以查看該時間點遊戲中所發生情況的更多詳細資料。

繪製 PIX CPU 事件的持續時間、執行時間與停滯時間

將 PIX CPU 事件新增至 Active Metrics 面板時,預設會繪製事件的持續時間。持續時間是從事件開始執行到事件停止執行所花費的時間。此時間包括事件因內容切換而未執行的任何時間。事件未執行的時間即為停滯時間。持續時間減去停滯時間即為執行時間,也就是事件本身程式碼執行的時間。 除了持續時間之外,也可以繪製執行時間與停滯時間。在 Active Metrics 面板中展開包含事件名稱的列,即可繪製停滯時間或執行時間,如下圖所示。 繪製 PIX CPU 事件的執行時間與停滯時間

Metrics 檢視長條圖

繪製計量時,會建立一個長條圖,顯示計量值在擷取期間的分佈。長條圖垂直排列,顯示在圖表的右側。下圖顯示一個計量,其持續時間值大致分成兩個不同的群組。將滑鼠指標停留在長條圖中的區間上,會顯示工具提示,指出接近該區間所代表之持續時間的點數。 Metrics 檢視長條圖 以滑鼠右鍵按一下長條圖區間,會顯示包含 Goto … 選項的操作功能表。Goto … 可用來從長條圖瀏覽至 Timeline 檢視。以滑鼠右鍵按一下長條圖區間並選取 Goto …,會將時間軸瀏覽至所選區間中其中一個事件正在執行的時間點。 Metrics 檢視長條圖操作功能表 可以按一下並拖曳滑鼠來選取長條圖的一部分。以這種方式選取長條圖的一部分時,Metrics 圖表會更新為只包含所選區域中的點。長條圖的所選部分也可以上下拖曳,Metrics 圖表會隨之更新。 選取 Metrics 檢視長條圖的一部分

Selector 面板

Selector 面板可用來選擇要繪製圖表的事件與計數器集合。可用的計量分為四個類別:Counters、Derived System Metrics、PIX CPU Events 與 PIX GPU Events。遊戲定義的計數器 (透過呼叫 PIXReportCounter 建立) 位於 Counters 群組的 Title Custom 節點下。Counters 群組中的其他計量,與可在 System Monitor 中繪製圖表的計數器相同。Derived System Metrics 中的計量是 PIX 在擷取執行期間計算出的值。PIX 會計算與 CPU 使用量、記憶體、檔案 IO 及 D3D API 物件使用量相關的各種計量。 若要繪製計數器圖表,請展開 Counters 樹狀結構,或在面板頂端的篩選列中輸入所需計數器的名稱 (或部分名稱),以找到要繪製的計數器。找到要繪製的計數器後,使用滑鼠或空白鍵選取計數器名稱旁的核取方塊,將其新增至圖表,如下圖所示。 Metrics 檢視計數器 根據預設,Selector 面板只會顯示最上層的 PIX CPU 與 PIX GPU 事件,其餘事件預設為隱藏。由於 PIX 事件可能數量龐大,從 UI 瀏覽的角度來看,預設列出所有事件並不實際。尋找非最上層之特定 PIX 事件最簡單的方式,是使用面板頂端的篩選列。輸入搜尋文字並按 Enter 後,Selector 面板會填入所有符合搜尋準則的事件與計數器。下圖顯示搜尋字串 RunSimulation 時找到的事件集合。 針對字串 AppController 找到的 CPU 事件 選取要繪製之事件名稱旁的核取方塊。清除核取方塊會將事件從圖表中移除。 選取 CPU 或 GPU Events 旁的 Show all 核取方塊,會顯示可繪製圖表的完整事件集合。

合併事件

常見的做法是以連續編號模式,為代表一個 CPU 工作畫面 (或任何其他重複工作集合) 的 PIX 事件命名,如下圖所示: 以 Frame * 模式命名的 PIX 事件 在此情況下,使用 Metrics 檢視分析個別畫面事件並沒有用處,但將事件集合視為一個群組來分析,可用來找出畫面時間中的極端值。 填入 Selector 面板時,PIX 會使用一組規則運算式,尋找名稱遵循規則運算式所描述模式的事件。符合模式的事件會被分組 (或合併)。為了繪製圖表與分析,符合模式的個別事件會被視為同一個事件。 PIX 有兩個內建規則運算式。開發人員可以定義其他規則運算式。 第一個內建規則運算式會比對以相同字串開頭、後接一或多個空格、再接一個數字的事件。例如,在上圖中,事件「Frame 334」、「Frame 335」、「Frame 336」等會被合併,並在 Metrics 檢視中繪製為單一事件。 第二個內建規則運算式允許模式結尾的數字為整數或小數。如果數字是小數,則「.」的兩側都必須有值。例如,事件「Render 10.987」與「Render 12.789」會被合併。 合併的事件會顯示在 Selector 面板樹狀結構中 PIX CPU Events 與 PIX GPU Events 下的獨立節點中,如下圖所示。 Selector 面板中的 Consolidated Events 節點 按一下合併事件旁的核取方塊,會將該事件群組新增至 Active Metrics 面板,與標準事件相同。將滑鼠指標停留在圖表中的點上,會顯示基礎事件的名稱,如下圖所示。 Metrics 檢視中的合併事件 從 Timeline 檢視瀏覽至 Metrics 檢視時,也會進行事件合併。在下圖中,繪製符合合併模式的事件 MainLoop 7769,會將合併事件 MainLoop * 新增至 Active Metrics 面板。 從 Timeline 繪製合併事件

定義自訂規則運算式

如果兩個內建規則運算式未產生您預期的事件分組,可以定義自訂規則運算式。使用 Consolidated Events Editor 定義自訂規則運算式。按一下 Selection Panel 中 Consolidated Events 節點下的 Open Consolidated Event Editor 超連結,即可存取此編輯器。 存取 Consolidated Events Editor 規則運算式會列在 Consolidated Event Definitions 清單方塊中。兩個內建規則運算式 Regex for Whole Number Increments 與 Regex for Whole Number with Decimal Increments 是清單中的前兩個。展開規則運算式,會顯示因該規則運算式而建立的合併事件。 Consolidated Events Editor 使用 Add New Search Pattern 超連結建立新的規則運算式。在對應的編輯方塊中輸入名稱、規則運算式本身以及分組模式。分組模式是規則運算式在評估時會變化的部分。PIX 使用 .Net Framework 的規則運算式類別處理運算式。撰寫規則運算式時,請參閱規則運算式快速參考以取得指引。評估規則運算式時,PIX 會將 PIX CPU events 與 PIX GPU events 分別分組。 在多個執行緒或 API 佇列上使用相同字串作為事件名稱是很常見的。例如,您可能在主執行緒上使用名為 Frame 456 的事件來識別畫面,然後也在背景工作執行緒上使用相同的事件名稱,以識別哪些工作屬於該畫面。在此情況下,為了在 Metrics 檢視中繪製圖表,將所有執行緒上遵循相同模式的所有事件合併為單一事件並沒有用處。選取 Consolidate by Container 核取方塊,會讓 PIX 將合併的範圍限定於每個執行緒或 API 佇列上的事件。 按一下 Preview 按鈕,會在 Preview Events 清單中填入套用規則運算式後將建立的合併事件。如果規則運算式格式錯誤,或未合併任何事件,就會顯示警告。只有在擷取中恰好出現一次的事件,才是合併的候選項目。 展開合併事件會列出組成該事件的個別事件。 可以使用 Settings UI 從一個 PIX 執行個體匯出規則運算式,並匯入另一個執行個體。
在 2023 年 6 月之前的 PIX 版本中,Settings 索引標籤包含停用合併事件或依執行緒將合併事件分組的設定。這些設定現在已由兩個內建規則運算式的存在 (或不存在),以及 Consolidated Events Editor 中的 Consolidate by Thread 核取方塊取代。

Active Metrics 與 Metric Details 面板

Active Metrics Panel 會列出從 Selector 面板或 Timeline 檢視新增至圖表的所有計量。已繪製計量的表格包含一個核取方塊,可用來切換是否繪製指定的計量。在 Active Metrics Panel 中選取計量時,Metric Details panel 會填入一組資料與控制項,可用來自訂計量圖表的下列面向:
  • 線條樣式
  • 色彩
  • 彙總模式
  • Y 軸的最小值與最大值
  • 效能預算
除了支援這些自訂項目之外,Metric Details panel 也可用來檢視計量在整個擷取以及所選時間範圍內的各種統計資料。 由於典型遊戲中可用的計量數量龐大,將所有作用中計量集中在單一表格中,可讓您更容易管理目前繪製的計量集合。 Active Metrics 面板 使用計量左側的核取方塊切換圖表狀態。選取某一列時按下空白鍵也會切換圖表狀態。可以使用向上與向下鍵在列之間瀏覽。 使用垃圾桶圖示可從 Active Metrics 面板中移除計量。 Ctrl-A 會選取表格中的所有計量。將 Ctrl-A 與空白鍵或 Delete 鍵搭配使用,是切換所有計量圖表狀態或移除所有計量的快速方式。Active Metrics 面板中的操作功能表也可用來快速繪製或取消繪製所有計量。 在 Active Metrics 面板中繪製與取消繪製所有計量

彙總模式

視擷取中的資料量而定,Metrics 檢視可能無法為所擷取之計量的每個值各繪製一個點。發生這種情況時,會將多個資料點彙總在一起。工具提示會包含已彙總的點數。 根據預設,會繪製彙總計量的最大值。可以使用 Metric Details Panel 中 Graph 索引標籤上的 Aggregation 下拉式清單變更此彙總模式,如下圖所示。 顯示已彙總點數的工具提示

自訂 Y 軸的最小值與最大值

在大多數情況下,Y 軸的預設最小值與最大值,是計量在擷取期間的最小值與最大值。不過,在某些情況下 (例如 CPU % Busy),預設的最小值與最大值是事先已知的。在這些情況下,Y 軸的最小值與最大值是固定的。在 CPU % Busy 範例中,預設的最小值與最大值分別為 0 與 100。 Y 軸的預設最小值與最大值,也會受到具有相同單位的已繪製計數器集合影響。在此情況下,最小值是所有計量中的最小值,最大值是所有計量中的最大值。 在某些情況下,Y 軸的預設最小值與最大值可能不是最佳值。其中一個例子是兩個以上已繪製計量的範圍差異很大時。在此情況下,預設的 Y 軸最小值與最大值可能會讓某些計量的個別值無法區分。在下圖中,Frame (GameThread) 計量的圖表很容易閱讀,但 BasePass_ViewExtensions 計量的圖表在圖表底部顯示為一條線。 繪製值範圍差異很大的計量 在這類情況下,可以為每個計量自訂 Y 軸的最小值與最大值,讓分析更容易。若要自訂 Y 軸,請先在 Active Metrics Panel 中選取計量。接著可以使用滑鼠滾輪,或在 Metric Details Panel 中手動輸入值,自訂 Y 軸的最小值與最大值。若要使用滑鼠自訂 Y 軸,請按住 Shift 鍵,然後使用滑鼠滾輪放大與縮小。請注意,使用滑鼠滾輪變更 Y 軸在長條圖控制項中也有效。 若要手動輸入 Y 軸的最小值與最大值,請取消選取 Metric Details Panel 中 Graph 索引標籤上的 Y-Axis Auto fit 核取方塊。這樣會讓 Y-axis min 與 Y-axis max 欄位變成可編輯。直接在編輯方塊中輸入自訂值。在下圖中,已自訂 BasePass_ViewExtensions 的 Y 軸最大值,讓該計量的圖表現在可與 Frame (GameThread) 的圖表一起閱讀。 自訂計量的 Y 軸最小值與最大值 透過取消選取 Y-Axis Auto Fit 核取方塊自訂 Y 軸時,圖表左側的面板中會新增一個新的單位方塊。單位方塊包含套用自訂 Y 軸值之計量的名稱,因此當自訂了多個計量時,更容易找出哪些自訂 Y 軸值套用到哪個計量。 具有自訂 Y 軸之計量的單位方塊 選取 Y-Axis Auto fit 核取方塊,即可還原計量的預設 Y 軸最小值與最大值。

指定效能預算

Metrics 檢視中的效能預算線,可讓您輕鬆快速地找出圖表中超出預算的點。可以為任何計量指定效能預算。預算通常會針對各種情境指派,包括畫面時間、特定子系統每個畫面允許執行的時間,或協助追蹤記憶體使用量。 計量的預算集合是使用 Metric Details Panel 上的 Budgets 索引標籤指定。預算會在圖表中繪製為水平線。下列範例顯示名為 OctagonFloor 之 PIX 事件的預算。線上方的點是超出效能預算的點。 Metrics 檢視中 PIX 事件的效能預算線 有些計量 (例如 Total Used Memory) 具有預先定義的預算。以 Total Used Memory 而言,這些預算會識別每部零售版主機的遊戲記憶體量。這些預算可讓您輕鬆判斷何時超出特定主機類型的記憶體預算。例如,在下圖中,預算線可讓您輕鬆看出何時超出 XBOX Series S (Lockhart) 主機的記憶體預算。 XBOX Series X 主機的記憶體預算線 若要建立新的預算,請按一下 Metric Details Panel 中 Budgets 索引標籤上的 + 按鈕。系統會提供一組控制項,用來為預算群組與個別預算命名、自訂線條色彩、輸入每個預算的值,以及指定是否應在圖表中為高於或低於預算的點繪製標記。預算的單位與定義該預算之計量類型的單位相符。 使用 Metric Details 面板建立預算 可以使用 Active Metrics Panel 中計量名稱旁的圖表控制項,切換是否繪製預算線。 在 Metrics 檢視中切換預算線的繪製 如果預算的 Markers 下拉式清單值為 Above 或 Below,則會在圖表中新增附註,反白顯示落在預算線上方或下方的點。Metric Details 面板的 Stats 索引標籤會提供預算範圍外所有點的值與時間戳記清單。表格中的時間戳記是超連結。按一下超連結會瀏覽至 Timeline 檢視中包含該點的區段。 Metric Details 面板中的預算統計資料 Active Metrics Panel 與 Metric Details Panel 的內容與狀態會在不同擷取之間以及不同 PIX 執行個體之間保留。如果開啟的擷取不適用某個計量 (例如不存在的 PIX 事件),該計量就會從 Active Metrics Panel 中移除。

從 Metrics 檢視匯出資料

Metrics 檢視支援匯出資料,以便在 Microsoft Excel 等其他工具中進行分析。資料會以 csv 格式匯出。會匯出目前所繪製計量之所有點的值。使用操作功能表匯出已繪製的資料。 從 Metrics 檢視匯出資料 如果未在圖表中選取時間範圍,Export graphed metrics… 會匯出整個擷取的資料。 每個計量的點會依時間順序匯出。csv 檔案中的欄包括計量名稱,以及每個點的時間戳記與值。 從 Metrics 檢視匯出之計量資料的 csv 檔案 如果匯出多個計量的點,每個計量的資料會保留在 csv 檔案中一組連續的列中,指定計量的資料會接在前一個計量的資料之後。

建立與管理 Metrics 檢視設定

目前繪製的計量集合及其顯示屬性,可以儲存為 Metrics 檢視設定。建立設定可讓您更輕鬆地在經常一起繪製的計量群組之間切換。例如,可以為一組物理計量建立一個設定,並為一組音訊計量建立另一個設定。Metrics 檢視左上角的 Configurations 下拉式清單可用來在設定之間切換。 使用 Apply 按鈕旁的 Save as… 功能表選項,將 Metrics 檢視的狀態儲存為設定。 將 Metrics 檢視的狀態儲存為設定 在對話方塊中輸入狀態的名稱。 用來儲存 Metrics 檢視設定的對話方塊 Configurations 下拉式清單可用來在設定之間切換。從下拉式清單中選取所需的設定,然後按一下 Apply。 選取 Metrics 檢視設定 Metrics 檢視設定可以從一個 PIX 執行個體匯出,並匯入另一個執行個體。如需詳細資訊,請參閱儲存與載入 PIX 設定。

另請參閱

PIX PIX 時間擷取
最後修改於 2026年10月8日