> ## 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 Devkit | XBOX One / XBOX One S | | 5,120 MiB | 5,028 MiB |
| XBOX One X Devkit | XBOX One X test | Standard<br />Advanced | 8,128 MiB<br />9,152 MiB | 2,024 MiB<br /> 1,012 MiB |
| XBOX One X Devkit | 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 Devkit | 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 Devkit | 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 Devkit | Scarlett 40GB | | 37,156 MiB | |

콘솔 모드 구성에 대한 자세한 내용은 [Microsoft Game Development Kit console modes](https://learn.microsoft.com/archive/console-modes-toc)를 참조하세요.

### MicrosoftGame.config에서 타이틀 메모리 구성

[MicrosoftGame.config](/ko/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)은 224 GB/s의 피크 액세스 속도를 갖는 "GPU Optimal Bandwidth" 메모리이며, 나머지(94 MiB)는 표준(56 GB/s)입니다. Advanced는 추가로 574 MiB를 제공하며, 그 중 128 MiB가 "GPU Optimal Bandwidth"입니다. Standard 메모리 모드가 선택되면 특정 상황(예: 포그라운드의 시스템 웹 브라우저에서 URL 실행)에서 타이틀을 일시 중지하고 Quick Resume해야 할 필요성을 없애기 위해 그 차이는 시스템으로 반환됩니다.

XBOX Series X의 경우 Standard는 GPU에 대해 사용 가능한 피크 대역폭인 560 GB/sec에서 작동하는 10 GB의 메모리를 제공합니다(GPU Optimal Bandwidth). Advanced는 GPU에 336 GB/sec의 피크 대역폭이 가능한 추가 3 GB(Standard Bandwidth)에 대한 액세스를 타이틀에 제공합니다. XBOX One X와 마찬가지로 Standard 메모리 모드가 선택되면 그 차이는 시스템으로 반환되지 않으며, 타이틀이 활성 상태일 때 지원을 강화하기 위해 XBOX 게임 캐시와 같은 시스템 기능에 적용됩니다.

## 개발 중 추가 메모리 구성 및 액세스

ProfilingMode가 활성화되면 게임 엔진 도구부터 최적화되지 않은 게임 자산에 이르기까지 개발 중에 사용할 수 있는 추가 메모리가 타이틀에 제공됩니다.

이 추가 메모리는 타이틀과 [PIX](/ko/tools/tools-console/pix/pix)와 같은 도구 사이에 공유됩니다. ProfilingMode가 활성화될 때 사용할 수 있는 총 메모리 양은 개발 킷 하드웨어에 따라 달라지며, XBOX One X 개발 키트 및 XBOX Series X 개발 키트의 경우 콘솔 모드에 따라 달라집니다.

추가 메모리는 두 가지 방식으로 타이틀에 노출됩니다.

* ExtraTitleMemory 구성 설정을 사용하여 모든 표준 메모리 할당 루틴을 통해 타이틀에 직접 사용할 수 있게 되는 추가 메모리 양을 지정할 수 있습니다.
* ExtraTitleMemory 설정을 통해 할당되지 않은 메모리는 [XMemVirtualAlloc](/ko/reference/system/xmem/functions/xmemvirtualalloc) 또는 [XMemCreateWin32Heap](/ko/reference/system/xmem/functions/xmemcreatewin32heap) 호출 시 XMEM\_TOOL 플래그를 지정하여 액세스할 수 있습니다. 도구에서 XMEM\_TOOL 힙을 사용하는 방법에 대한 자세한 내용은 아래의 XMEM\_TOOL 힙에 메모리 할당 섹션을 참조하세요.

ExtraTitleMemory 구성 설정은 [DevHome](/ko/tools/tools-console/devhome/devhome), [XBOX Manager](/ko/tools/tools-console/xbom/xbom), [XBOX Device Portal (Windows Device Portal on XBOX)](/ko/tools/tools-console/wdp/wdp) 또는 [xbConfig](/ko/tools/tools-console/commandlinetools/xbconfig) 명령줄 도구를 사용하여 설정할 수 있습니다.

<a id="ID4EPC" />

### 개발 중 추가 메모리 사용에 대한 추가 정보

* 타이틀에서 추가 메모리를 사용하면 [PIX](/ko/tools/tools-console/pix/pix)와 같은 도구에서 사용할 수 있는 메모리 양이 줄어듭니다. [PIX](/ko/tools/tools-console/pix/pix)를 위해 최소 512MB의 메모리를 남겨두는 것이 좋습니다.
* 도구는 일반적으로 플랫폼 메모리 예약을 사용하여 실행됩니다. 어떤 경우에는 도구가 타이틀 메모리를 사용해야 할 수도 있습니다. 이러한 할당은 XMEM\_TOOL 풀이 고갈될 때까지 XMEM\_TOOL 플래그를 사용하여 이루어지며, 그 후 기본 메모리 풀에서 할당을 시도합니다. 이러한 오버플로우를 방지하려면 ToolingMemoryOverflow 플래그를 false로 설정할 수 있습니다. ToolingMemoryOverflow 설정을 사용하여 도구가 그렇게 하지 않도록 지정했더라도 [PIX](/ko/tools/tools-console/pix/pix)와 다른 도구가 여전히 타이틀 메모리를 사용하는 경우가 몇 가지 있습니다. 이러한 경우는 향후 GDK 릴리스에서 수정될 것입니다.
* 콘솔 모드를 변경해도 Profiling Mode 설정은 변경되지 않습니다. 추가 메모리는 여전히 타이틀과 PIX 및 도구에서 사용할 수 있습니다. 추가 메모리를 끄려면 Profiling Mode를 끄세요. 콘솔 모드에 대한 자세한 내용은 [Using Console Modes to test your game](/ko/home/setup-install/concepts/using-console-modes)을 참조하세요.

<a id="ID4EWD" />

### Profiling Mode 켜기

추가 타이틀 메모리에 액세스하려면 [DevHome](/ko/tools/tools-console/devhome/devhome)의 Performance 탭, [XBOX Manager](/ko/tools/tools-console/xbom/xbom)의 settings 탭, [XBOX Device Portal (Windows Device Portal on XBOX)](/ko/tools/tools-console/wdp/wdp)의 Settings 페이지 또는 xbConfig 명령줄 도구에서 Profiling Mode를 켭니다.

[DevHome](/ko/tools/tools-console/devhome/devhome)에서는 Performance 탭의 **PIX** 설정을 사용하여 Profiling Mode를 켭니다. 도구가 (필요한 경우) 타이틀 메모리로 넘쳐 흐르게 하려면 **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="Extended Memory 설정 구성" width="800" height="432" data-path="images/gdk/features/console/xbom_extended_memory_settings.png" />

<a id="ID4EVE" />

### 추가 타이틀 메모리 구성

Profiling Mode를 켠 후, 타이틀에 직접 사용할 수 있게 되는 추가 메모리 양과 XMEM\_TOOL 힙에서 사용할 수 있는 메모리 양을 구성할 수 있습니다. 기본적으로 타이틀에 추가 메모리는 제공되지 않습니다. 이 기본 설정은 [DevHome](/ko/tools/tools-console/devhome/devhome)의 Performance 탭, [XBOX Manager](/ko/tools/tools-console/xbom/xbom)의 settings 탭, [XBOX Device Portal (Windows Device Portal on XBOX)](/ko/tools/tools-console/wdp/wdp)의 settings 페이지 또는 [xbConfig](/ko/tools/tools-console/commandlinetools/xbconfig) 명령줄 도구에서 변경할 수 있습니다.

Dev Home에서는 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="Tools 메모리 관리" width="800" height="370" data-path="images/gdk/features/console/xbom_manage_tools_memory.png" />

[XBOX Manager](/ko/tools/tools-console/xbom/xbom) 및 [XBOX Device Portal (Windows Device Portal on XBOX)](/ko/tools/tools-console/wdp/wdp)는 **Additional Memory for Title** 및 **Title Memory Overflow** 설정을 사용하여 추가 메모리를 구성하는 기능을 제공합니다. **Additional Memory for Title**에 값을 지정하면 지정한 메가바이트만큼 타이틀 메모리가 확장(그리고 도구 메모리는 축소)됩니다.

<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](/ko/tools/tools-console/commandlinetools/xbconfig) 명령줄 도구를 사용하여 추가 메모리를 구성하려면 **ExtraTitleMemory** 및 **ToolingMemoryOverflow** 설정을 사용하세요.

<a id="ID4EQG" />

## 도구 메모리 할당

도구 메모리에 액세스하려면 적절한 할당에 전달되는 플래그를 사용해야 합니다.

### XMemVirtualAlloc

[XMemVirtualAlloc](/ko/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](/ko/reference/system/xmem/functions/xmemistoolsmemavailable) / [XMemCreateWin32Heap](/ko/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](/ko/reference/system/xmem/functions/xmemgetworkingsetstatistics) API를 사용하여 XMEM\_TOOL 풀의 구성된 크기와 현재 사용 가능한 메모리 양을 포함한 현재 통계를 얻을 수 있습니다. 예시는 [XMemGetWorkingSetStatistics](/ko/reference/system/xmem/functions/xmemgetworkingsetstatistics)를 참조하세요.

## 참고 항목

[Performance page for Developer Home on the console (Dev Home)](/ko/tools/tools-console/devhome/devhome-performance)

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

[XMemVirtualAlloc](/ko/reference/system/xmem/functions/xmemvirtualalloc)

[XMemGetWorkingSetStatistics](/ko/reference/system/xmem/functions/xmemgetworkingsetstatistics)


## Related topics

- [이전 버전 호환성만을 통한 크로스 제너레이션 게임](/ko/build/console-features/cross-gen/cross-gen-backcompat-only.md)
- [XBOX GDK 타이틀을 위한 메모리 시스템](/ko/build/console-features/memory/index.md)
- [XMemIsToolsMemAvailable](/ko/reference/system/xmem/functions/xmemistoolsmemavailable.md)
- [XBOX System Monitor](/ko/tools/tools-console/visualstudio/xbox-system-monitor.md)
- [XBOX Series X|S 개요](/ko/paths/series-xs/overview.md)
