> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 為您的遊戲和開發套件設定記憶體

> 為您的遊戲和開發套件設定記憶體

本主題說明遊戲如何設定其零售記憶體效能，以及如何為開發目的啟用額外的遊戲記憶體。

## 在 XBOX One X 和 XBOX Series X 開發套件上設定遊戲記憶體

在 XBOX One X 和 XBOX Series X 上執行的遊戲，分別可存取最多 8.9 GB 和 13 GB 的記憶體。由於新式遊戲的需求差異很大，此值可由遊戲開發人員設定。有些遊戲可能希望在 XBOX 系列主機之間維持一致的記憶體設定檔，而其他遊戲可能需要更多記憶體來載入更高解析度的紋理，或執行 XBOX One X/XBOX Series X 特定的最佳化。您可以在 XBOX One X 和 XBOX Series X 上為您的遊戲記憶體設定選擇兩種狀態。

<a id="ID4EWC" />

| 主機類型 | 主機模式 | 遊戲記憶體模式 | 遊戲記憶體 | 工具記憶體 |
| :- | :-: | :-: | :-: | -: |
| XBOX One/XBOX One S | | | 5,120 MiB | 1,012 MiB |
| XBOX One X | | Standard<br />Advanced | 8,128 MiB<br />9,152 MiB | 2,024 MiB<br /> 1,012 MiB |
| | | | | |
| XBOX One X 開發套件 | XBOX One / XBOX One S | | 5,120 MiB | 5,028 MiB |
| XBOX One X 開發套件 | XBOX One X 測試 | Standard<br />Advanced | 8,128 MiB<br />9,152 MiB | 2,024 MiB<br /> 1,012 MiB |
| XBOX One X 開發套件 | XBOX One X 開發套件 \[44] | Standard<br />Advanced | 8,128 MiB<br />9,152 MiB | 14,168 MiB<br />13,156 MiB |
| | | | | |
| XBOX Series S | | Standard<br />Advanced | 7,998 MiB<br />8,572 MiB | 不適用 |
| XBOX Series X | | Standard<br />Advanced | 10,208 MiB<br />13,312 MiB | 不適用 |
| | | | | |
| XBOX Series X 開發套件 | Lockhart 分析 (XBOX Series S) | Standard<br />Advanced | 7,998 MiB<br />8,572 MiB | 6,056 MiB<br />6,048 MiB |
| XBOX Series X 開發套件 | Anaconda 分析 (XBOX Series X) | Standard<br />Advanced | 10,208 MiB<br />13,312 MiB | 9,614 MiB<br />15,666 MiB |
| XBOX Series X 開發套件 | Scarlett 40GB | | 37,156 MiB | |

如需設定主機模式的詳細資訊，請參閱 [Microsoft Game Development Kit 主機模式](https://learn.microsoft.com/archive/console-modes-toc)。

### 在 MicrosoftGame.config 中設定遊戲記憶體

在 [MicrosoftGame.config](/zh-TW/reference/system/microsoftgameconfig/microsoftgameconfig-schema) 中，有三個元素可管理遊戲記憶體模式。XboxOneXTitleMemory 元素可管理在 XBOX One X 上執行之 XBOX One 遊戲的遊戲記憶體模式。XboxLockhartTitleMemory 和 XboxAnacondaTitleMemory 元素可管理在 XBOX Series X 開發套件上以 "LockhartProfiling" 或 "AnacondaProfiling" 模式執行之 XBOX Series X|S 遊戲的遊戲記憶體模式。這些元素允許的值為 "Standard" 和 "Advanced"。

對於 XBOX One X，Standard 提供 7.9 GB，而 Advanced 為遊戲提供 8.9 GB。選擇 Standard 時，1 GB 的差額不會還給系統，而是套用至 XBOX 遊戲快取，以提升遊戲的 I/O 效能。

對於 XBOX Series S，Standard 提供 7.7 GB 的記憶體。其中大部分 (7904 MiB) 是「GPU 最佳頻寬」記憶體，尖峰存取速度為 224 GB/s，其餘 (94 MiB) 則為標準 (56 GB/s)。Advanced 額外提供 574 MiB，其中 128 MiB 為「GPU 最佳頻寬」。選擇 Standard 記憶體模式時，差額會還給系統，以免除在特定情況下 (例如在前景中以系統網頁瀏覽器啟動 URL) 需要暫停並快速繼續遊戲的必要。

對於 XBOX Series X，Standard 提供 10 GB 的記憶體，以 GPU 可用的尖峰頻寬 560 GB/sec 運作 (GPU 最佳頻寬)。Advanced 讓遊戲可額外存取 3 GB，其對 GPU 的尖峰頻寬可達 336 GB/sec (標準頻寬)。與 XBOX One X 相同，如果選擇 Standard 記憶體模式，差額不會還給系統，而是套用至 XBOX 遊戲快取等系統功能，以在遊戲作用中時加強對遊戲的支援。

## 在開發期間設定及存取額外記憶體

啟用 ProfilingMode 時，您的遊戲可使用額外的記憶體，可在開發期間用於從遊戲引擎工具到未最佳化遊戲資產等任何用途。

這些額外記憶體由遊戲和 [PIX](/zh-TW/tools/tools-console/pix/pix) 等工具共用。啟用 ProfilingMode 時可用的記憶體總量取決於開發套件硬體，而對於 XBOX One X 開發套件和 XBOX Series X 開發套件，還取決於主機模式。

額外記憶體會以兩種方式提供給遊戲：

* ExtraTitleMemory 組態設定可用來指定透過所有標準記憶體配置常式直接提供給您遊戲的額外記憶體量。
* 任何未透過 ExtraTitleMemory 設定指派的記憶體，都可以在呼叫 [XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc) 或 [XMemCreateWin32Heap](/zh-TW/reference/system/xmem/functions/xmemcreatewin32heap) 時指定 XMEM\_TOOL 旗標來存取。如需如何在工具中使用 XMEM\_TOOL 堆積的詳細資訊，請參閱下方的「在 XMEM\_TOOL 堆積上配置記憶體」一節。

ExtraTitleMemory 組態設定可以使用 [DevHome](/zh-TW/tools/tools-console/devhome/devhome)、[XBOX Manager](/zh-TW/tools/tools-console/xbom/xbom)、[XBOX Device Portal (XBOX 上的 Windows Device Portal)](/zh-TW/tools/tools-console/wdp/wdp) 或 [xbConfig](/zh-TW/tools/tools-console/commandlinetools/xbconfig) 命令列工具來設定。

<a id="ID4EPC" />

### 在開發期間使用額外記憶體的其他資訊

* 在遊戲中使用額外記憶體，會減少 [PIX](/zh-TW/tools/tools-console/pix/pix) 等工具可用的記憶體量。我們建議至少為 [PIX](/zh-TW/tools/tools-console/pix/pix) 保留 512MB 的記憶體。
* 工具通常會使用平台記憶體保留區來執行。在某些情況下，工具會需要使用遊戲記憶體。這些配置會使用 XMEM\_TOOL 旗標進行，直到 XMEM\_TOOL 集區用盡為止，之後會嘗試從預設記憶體集區配置。可以將 ToolingMemoryOverflow 旗標設定為 false 以防止這種溢出。請注意，在某些情況下，即使您已使用 ToolingMemoryOverflow 設定指定不應使用遊戲記憶體，[PIX](/zh-TW/tools/tools-console/pix/pix) 和其他工具仍可能會佔用遊戲記憶體。這些情況將在 GDK 的未來版本中修正。
* 變更主機模式不會變更分析模式設定。您的遊戲以及 PIX 和工具仍可使用額外記憶體。若要關閉額外記憶體，請關閉分析模式。如需主機模式的詳細資訊，請參閱[使用主機模式測試您的遊戲](/zh-TW/home/setup-install/concepts/using-console-modes)。

<a id="ID4EWD" />

### 開啟分析模式

若要存取額外的遊戲記憶體，請在 [DevHome](/zh-TW/tools/tools-console/devhome/devhome) 的 \[效能] 索引標籤、[XBOX Manager](/zh-TW/tools/tools-console/xbom/xbom) 的 \[設定] 索引標籤、[XBOX Device Portal (XBOX 上的 Windows Device Portal)](/zh-TW/tools/tools-console/wdp/wdp) 的 \[設定] 頁面，或 xbConfig 命令列工具中開啟分析模式。

在 [DevHome](/zh-TW/tools/tools-console/devhome/devhome) 中，使用 \[效能] 索引標籤中的 **PIX** 設定來開啟分析模式。如果您希望工具 (在需要時) 溢出至遊戲記憶體，請選取 **Allow PIX and other tools to overflow and use your game's memory**。

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/console/xbom_extended_memory_settings.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=050e9e9407a98c777d957a4f88ec945c" alt="設定延伸記憶體設定" width="800" height="432" data-path="images/gdk/features/console/xbom_extended_memory_settings.png" />

<a id="ID4EVE" />

### 設定額外的遊戲記憶體

開啟分析模式後，您可以設定有多少額外記憶體直接提供給您的遊戲，以及有多少提供於 XMEM\_TOOL 堆積上。根據預設，不會提供額外記憶體給您的遊戲。您可以在 [DevHome](/zh-TW/tools/tools-console/devhome/devhome) 的 \[效能] 索引標籤、[XBOX Manager](/zh-TW/tools/tools-console/xbom/xbom) 的 \[設定] 索引標籤、[XBOX Device Portal (XBOX 上的 Windows Device Portal)](/zh-TW/tools/tools-console/wdp/wdp) 的 \[設定] 頁面，或 [xbConfig](/zh-TW/tools/tools-console/commandlinetools/xbconfig) 命令列工具中變更此預設設定。

在 Dev Home 中，選取 \[效能] 索引標籤中 **PIX** 設定的 **Manage tool memory** 按鈕，會顯示滑桿控制項，讓您設定要提供多少額外記憶體給您的遊戲：

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/console/xbom_manage_tools_memory.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=324b134c57bfe5ed014e349f67642c2a" alt="管理工具記憶體" width="800" height="370" data-path="images/gdk/features/console/xbom_manage_tools_memory.png" />

[XBOX Manager](/zh-TW/tools/tools-console/xbom/xbom) 和 [XBOX Device Portal (XBOX 上的 Windows Device Portal)](/zh-TW/tools/tools-console/wdp/wdp) 透過 **Additional Memory for Title** 和 **Title Memory Overflow** 設定提供設定額外記憶體的功能。為 **Additional Memory for Title** 指定值，會依您指定的 MB 數擴充遊戲記憶體 (並縮減工具記憶體)。

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/console/xbom_additional_memory_for_title.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=d225b26b98533189dbe797a02c96ff70" alt="設定額外的遊戲記憶體" width="657" height="662" data-path="images/gdk/features/console/xbom_additional_memory_for_title.png" />

若要使用 [xbConfig](/zh-TW/tools/tools-console/commandlinetools/xbconfig) 命令列工具設定額外記憶體，請使用 **ExtraTitleMemory** 和 **ToolingMemoryOverflow** 設定。

<a id="ID4EQG" />

## 配置工具記憶體

存取工具記憶體需要使用傳遞給適當配置的旗標。

### XMemVirtualAlloc

[XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc) 應使用 XMEM\_TOOL 旗標。

```c++ theme={null}
    // Allocate 1 MB of tooling memory by using 64 K pages. 
    PVOID cpu64kmemory = XMemVirtualAlloc (NULL, 
                                           1024 * 1024, 
                                           MEM_64K_PAGES | MEM_RESERVE | MEM_COMMIT, 
                                           XMEM_TOOL | XMEM_CPU, 
                                           PAGE_READWRITE); 
```

### XMemIsToolsMemAvailable / XMemCreateWin32Heap

[XMemIsToolsMemAvailable](/zh-TW/reference/system/xmem/functions/xmemistoolsmemavailable) / [XMemCreateWin32Heap](/zh-TW/reference/system/xmem/functions/xmemcreatewin32heap) 應使用 XMEM\_HEAP\_TOOL 旗標。

```c++ theme={null}
    //  
    // XMemIsToolsMemAvailable and XMemCreateWin32Heap example. 
    //  
 
    DWORD HeapType = XMemIsToolsMemAvailable() ? XMEM_HEAP_TOOL : XMEM_HEAP_DEFAULT; 
 
    // Create a dev scratch usage heap on tools or title that isn't limited in size. 
    HANDLE ScratchHeap = XMemCreateWin32Heap(HeapType, 0);   
```

<a id="ID4EEH" />

### 查詢 XMEM\_TOOL 堆積上的記憶體

[XMemGetWorkingSetStatistics](/zh-TW/reference/system/xmem/functions/xmemgetworkingsetstatistics) API 可用來取得 XMEM\_TOOL 集區上記憶體的目前統計資料，包括其設定的大小和目前可用的記憶體量。如需範例，請參閱 [XMemGetWorkingSetStatistics](/zh-TW/reference/system/xmem/functions/xmemgetworkingsetstatistics)。

## 另請參閱

[主機上 Developer Home 的效能頁面 (Dev Home)](/zh-TW/tools/tools-console/devhome/devhome-performance)

[Microsoft Game Development Kit 主機模式](https://learn.microsoft.com/archive/console-modes-toc)

[XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc)

[XMemGetWorkingSetStatistics](/zh-TW/reference/system/xmem/functions/xmemgetworkingsetstatistics)


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [XBOX Series X|S 總覽](/zh-TW/paths/series-xs/overview.md)
- [Advanced Shader Delivery](/zh-TW/build/gdk-and-engines/guides/advanced-shader-delivery.md)
- [XR-003 提交的遊戲品質](/zh-TW/publishing/certification/xr/xr-003.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
