- 每個虛擬記憶體保留區的追蹤結構
- 處理檔案、事件和執行緒同步處理物件
- 網路
CreateFileCreateEventCreateSemaphore
XError 和偵錯資料流提供額外資訊。
如果核心記憶體使用量已超過限制,API 呼叫會失敗,且 GetLastError() 值為 ERROR\_NOT\_ENOUGH\_MEMORY。
診斷輸出可在附加的偵錯工具、xbwatson.exe 和 xbdbgmon.exe 中檢視。
警告 (14 MB 時)
在 14 MB 觸發警告時,會出現下列輸出。錯誤 (16 MB 時)
在 16 MB 觸發錯誤時,會出現下列輸出。
也會出現下列錯誤。
XMEM\_MAKE\_TAG 和 XMemVirtualAlloc 加上標籤),以指出記憶體的用途。標籤有助於判斷記憶體使用量的來源。
下表顯示與遊戲使用量相關的最常見「高使用率」標籤。
核心記憶體分為兩大類別,稱為「非分頁」和「分頁」。在 Microsoft Game Development Kit (GDK) 中,這些類別之間沒有功能上的差異,可以視為同義。
常見的核心記憶體成本
下表顯示所列每個動作的預期核心記憶體成本。提高限制
較小型遊戲的記憶體使用量可能符合現有限制。不過,較大型的遊戲必須提供記憶體以支援其核心記憶體使用量。 XMemTransferMemory API 用來提供必要的記憶體。分析核心集區使用量
PIX 目前不支援監視核心集區使用量。您可以使用 xperf 和 Windows Performance Analyzer (WPA) 來監視耗用量。 使用下列步驟來分析核心記憶體。- 輸入命令
xbrun /x/title xperf -start -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree -f d:\krnl.etl - 執行遊戲案例。
- 輸入命令
xbrun /x/title xperf -stop -d d:\krnl.merged.etl - 輸入命令
xbcp xd:\krnl.merged.etl %TEMP%\pool_usage.etl - 在 WPA 中開啟 pool_usage.etl 檔案,並如圖 1 所示進行分析。

