> ## 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 上でのタイトル メモリ構成として、2 つの状態から選択できます。

<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 test | Standard<br />Advanced | 8,128 MiB<br />9,152 MiB | 2,024 MiB<br /> 1,012 MiB |
| XBOX One X 開発キット | XBOX One X Devkit \[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 | N/A |
| XBOX Series X | | Standard<br />Advanced | 10,208 MiB<br />13,312 MiB | N/A |
| | | | | |
| XBOX Series X 開発キット | Lockhart Profiling (XBOX Series S) | Standard<br />Advanced | 7,998 MiB<br />8,572 MiB | 6,056 MiB<br />6,048 MiB |
| XBOX Series X 開発キット | Anaconda Profiling (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](/ja-jp/reference/system/microsoftgameconfig/microsoftgameconfig-schema) には、タイトル メモリ モードを管理する 3 つの要素があります。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 の差はシステムには戻されず、タイトルの I/O パフォーマンスを向上させるために XBOX ゲーム キャッシュに適用されます。

XBOX Series S の場合、Standard は 7.7 GB のメモリを提供します。その大部分 (7904 MiB) は、ピーク アクセス速度が 224 GB/s の「GPU 最適帯域幅」メモリで、残り (94 MiB) は標準 (56 GB/s) です。Advanced はさらに 574 MiB を提供し、そのうち 128 MiB が「GPU 最適帯域幅」となります。Standard メモリ モードが選択された場合、特定の状況 (フォアグラウンドでシステムの Web ブラウザーで URL を起動する場合など) でタイトルをサスペンドおよびクイック再開する必要性をなくすために、その差はシステムに戻されます。

XBOX Series X の場合、Standard は GPU に対して利用可能なピーク帯域幅 560 GB/秒 (GPU 最適帯域幅) で動作する 10 GB のメモリを提供します。Advanced では、GPU に対してピーク帯域幅 336 GB/秒 (標準帯域幅) が可能な追加の 3 GB へのアクセスがタイトルに提供されます。XBOX One X と同様に、Standard メモリ モードが選択された場合、その差はシステムには戻されません。XBOX ゲーム キャッシュなどのシステム機能に適用され、タイトルがアクティブな時にそのタイトルのサポートを強化します。

## 開発中の追加メモリの構成とアクセス

ProfilingMode が有効な場合、ゲーム エンジンのツールから最適化されていないゲーム アセットまで、開発中に使用できる追加メモリがタイトルに提供されます。

この追加メモリは、タイトルと [PIX](/ja-jp/tools/tools-console/pix/pix) などのツール間で共有されます。ProfilingMode が有効な場合に利用できるメモリの合計量は、開発キットのハードウェア、および XBOX One X 開発キットおよび XBOX Series X 開発キットの場合はコンソール モードに依存します。

追加メモリは、次の 2 つの方法でタイトルに公開されます。

* ExtraTitleMemory 構成設定を使用して、すべての標準メモリ割り当てルーチンを介してタイトルに直接利用可能となる追加メモリの量を指定できます。
* ExtraTitleMemory 設定を介して割り当てられなかったメモリは、[XMemVirtualAlloc](/ja-jp/reference/system/xmem/functions/xmemvirtualalloc) または [XMemCreateWin32Heap](/ja-jp/reference/system/xmem/functions/xmemcreatewin32heap) を呼び出すときに XMEM\_TOOL フラグを指定することでアクセスできます。ツールで XMEM\_TOOL ヒープを使用する方法の詳細については、後述の「XMEM\_TOOL ヒープ上でのメモリの割り当て」セクションを参照してください。

ExtraTitleMemory 構成設定は、[DevHome](/ja-jp/tools/tools-console/devhome/devhome)、[XBOX Manager](/ja-jp/tools/tools-console/xbom/xbom)、[XBOX Device Portal (XBOX 上の Windows Device Portal)](/ja-jp/tools/tools-console/wdp/wdp)、または [xbConfig](/ja-jp/tools/tools-console/commandlinetools/xbconfig) コマンド ライン ツールを使用して設定できます。

<a id="ID4EPC" />

### 開発中の追加メモリの使用に関する追加情報

* タイトルで追加メモリを使用すると、[PIX](/ja-jp/tools/tools-console/pix/pix) のようなツールで利用できるメモリの量が減少します。[PIX](/ja-jp/tools/tools-console/pix/pix) には少なくとも 512 MB のメモリを残すことをお勧めします。
* ツールは通常、プラットフォームのメモリ予約を使用して実行されます。ツールがタイトル メモリの使用を必要とする場合もあります。これらの割り当ては XMEM\_TOOL プールが枯渇するまで XMEM\_TOOL フラグを使用して行われ、その後、既定のメモリ プールから割り当てを試みます。このスピルオーバーを防ぐために、ToolingMemoryOverflow フラグを false に設定できます。ToolingMemoryOverflow 設定を使用して、[PIX](/ja-jp/tools/tools-console/pix/pix) やその他のツールがそうすべきでないと指定していても、依然としてタイトル メモリを使用する場合があることに注意してください。これらのケースは、GDK の将来のリリースで修正される予定です。
* コンソール モードを変更しても、プロファイル モードの設定は変更されません。追加メモリは引き続きタイトルおよび PIX とツールで利用できます。追加メモリをオフにするには、プロファイル モードをオフにしてください。コンソール モードの詳細については、[コンソール モードを使用してゲームをテストする](/ja-jp/home/setup-install/concepts/using-console-modes) を参照してください。

<a id="ID4EWD" />

### プロファイル モードをオンにする

追加のタイトル メモリにアクセスするには、[DevHome](/ja-jp/tools/tools-console/devhome/devhome) の \[Performance] タブ、[XBOX Manager](/ja-jp/tools/tools-console/xbom/xbom) の設定タブ、[XBOX Device Portal (XBOX 上の Windows Device Portal)](/ja-jp/tools/tools-console/wdp/wdp) の \[Settings] ページ、または xbConfig コマンド ライン ツールでプロファイル モードをオンにします。

[DevHome](/ja-jp/tools/tools-console/devhome/devhome) では、\[Performance] タブの **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](/ja-jp/tools/tools-console/devhome/devhome) の \[Performance] タブ、[XBOX Manager](/ja-jp/tools/tools-console/xbom/xbom) の設定タブ、[XBOX Device Portal (XBOX 上の Windows Device Portal)](/ja-jp/tools/tools-console/wdp/wdp) の設定ページ、または [xbConfig](/ja-jp/tools/tools-console/commandlinetools/xbconfig) コマンド ライン ツールで変更できます。

DevHome では、\[Performance] タブの **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](/ja-jp/tools/tools-console/xbom/xbom) と [XBOX Device Portal (XBOX 上の Windows Device Portal)](/ja-jp/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](/ja-jp/tools/tools-console/commandlinetools/xbconfig) コマンド ライン ツールを使用して追加メモリを構成するには、**ExtraTitleMemory** および **ToolingMemoryOverflow** 設定を使用します。

<a id="ID4EQG" />

## ツール メモリの割り当て

ツール メモリへのアクセスには、適切な割り当てに渡されるフラグを使用する必要があります。

### XMemVirtualAlloc

[XMemVirtualAlloc](/ja-jp/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](/ja-jp/reference/system/xmem/functions/xmemistoolsmemavailable) / [XMemCreateWin32Heap](/ja-jp/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](/ja-jp/reference/system/xmem/functions/xmemgetworkingsetstatistics) API を使用して、構成されたサイズや現在利用可能なメモリの量など、XMEM\_TOOL プール上のメモリに関する現在の統計を取得できます。例については、[XMemGetWorkingSetStatistics](/ja-jp/reference/system/xmem/functions/xmemgetworkingsetstatistics) を参照してください。

## 関連情報

[コンソール上の開発者ホームの Performance ページ (Dev Home)](/ja-jp/tools/tools-console/devhome/devhome-performance)

[Microsoft Game Development Kit コンソール モード](https://learn.microsoft.com/archive/console-modes-toc)

[XMemVirtualAlloc](/ja-jp/reference/system/xmem/functions/xmemvirtualalloc)

[XMemGetWorkingSetStatistics](/ja-jp/reference/system/xmem/functions/xmemgetworkingsetstatistics)


## Related topics

- [NDA トピック ディレクトリ - Microsoft Learn 公開版へのリンク](/ja-jp/nda/nda-topic-directory.md)
- [バックワード互換のみによるクロス世代ゲーム](/ja-jp/build/console-features/cross-gen/cross-gen-backcompat-only.md)
- [XBOX System Monitor](/ja-jp/tools/tools-console/visualstudio/xbox-system-monitor.md)
- [XBOX Series X|S 概要](/ja-jp/paths/series-xs/overview.md)
- [XBOX GDK タイトルのメモリ システム](/ja-jp/build/console-features/memory/index.md)
