Memory Profiler 모듈은 프로파일러 창 상단의 차트에 메모리 데이터를 표시합니다. 창 하단의 세부 정보 창에 Unity가 각 프레임에서 메모리를 할당한 위치에 대한 분석을 표시합니다.
Memory Profiler 모듈의 차트에는 애플리케이션이 메모리를 사용하는 위치에 대한 자세한 정보를 표시하는 카테고리가 있습니다.
| 차트 | 설명 |
|---|---|
| Total Used Memory | 애플리케이션이 사용한 총 메모리입니다. |
| Texture Memory | 애플리케이션의 텍스처가 사용한 메모리 양입니다. |
| Mesh Memory | 애플리케이션의 메시가 사용한 메모리 양입니다. |
| Material Count | 애플리케이션의 머티리얼 인스턴스 수입니다. |
| Object Count | 애플리케이션의 네이티브 오브젝트 인스턴스 수입니다. |
| GC Used Memory | 가비지 컬렉션 힙이 사용한 메모리 양입니다. |
| GC Allocated In Frame | 가비지 컬렉션 힙의 프레임당 할당된 메모리 양입니다. |
Memory 모듈을 선택하면 세부 정보 창에 Unity가 애플리케이션에서 메모리를 할당한 위치에 대한 분석이 표시됩니다. 드롭다운에는 다음 옵션이 있습니다.
| 뷰 | 설명 |
|---|---|
| Simple 뷰 | Unity가 애플리케이션에서 메모리를 할당한 위치에 대한 기본 개요를 표시합니다. |
| Detailed 뷰 | 중요: 이 뷰는 지원 중단되었습니다. 대신 Memory Profiler 패키지를 사용합니다. Memory Profiler 패키지가 설치된 경우 세부 정보 창 상단의 Open Memory Profiler 버튼을 선택하여 Memory Profiler 창을 엽니다. |
Simple 뷰는 운영체제가 애플리케이션에서 사용 중이라고 보고하는 메모리 양을 표시합니다. 이 값은 시스템 사용 메모리 프로파일러 카운터를 기준으로 합니다. 운영체제로부터 애플리케이션의 전체 메모리 크기를 가져올 수 있는 플랫폼에서 System Memory Usage는 0을 초과하고 작업 관리자와 같은 크기입니다.
Unity는 운영체제에 메모리를 너무 자주 요청하지 않도록 일부 메모리 풀을 할당하기 위해 별도로 설정합니다. Profiler 모듈은 Unity가 예약한 메모리 양과 프로파일러 캡처 시 Unity가 사용한 메모리 양을 (In use / Reserved)로 표시합니다
다음 참고 표에는 Simple 뷰에 제공되는 통계가 나와 있습니다. 해당 프로파일러 카운터는 ProfilerRecorder API 및 Profiler 모듈 에디터에서 사용할 수 있으므로 커스텀 Profiler 모듈에 추가할 수 있습니다.
Total Committed Memory에는 선택한 프레임에 대해 Unity의 메모리 관리자 시스템이 추적한 총 메모리 양이 표시됩니다.
| 값 | 설명 |
|---|---|
| Tracked Memory (In use / Reserved) | Unity가 사용하고 추적하는 전체 메모리 양(in use)과 Unity가 추적 목적과 풀 할당을 위해 예약한 메모리 양(Reserved)입니다. |
| Untracked Memory | Unity가 사용했지만 인식하지 못한 총 메모리 양을 나타냅니다. 추적되지 않은 메모리의 예는 다음과 같습니다. - 네이티브 플러그인 또는 일부 드라이버를 통해 할당한 메모리 - Mono 또는 IL2CPP 유형 메타데이터 - 실행 코드와 DLL 파일이 사용하는 메모리 Memory Profiler 패키지 및 네이티브 플랫폼 제공업체는 이러한 추적되지 않은 메모리 양에 대한 자세한 정보를 보유할 수 있습니다. |
참고: Tracked Memory (In use / Reserved) 통계와 동일한 프로파일러 카운터는 사용 중인 메모리의 경우 System Used Memory고, 예약된 메모리의 경우 Total Reserved Memory입니다.
Unity가 메모리를 할당한 하위 시스템에 따라 Total Committed Memory를 상위 카테고리로 분류합니다.
모든 메모리 시스템이 풀을 사용하거나 사용된 메모리와 예약된 메모리를 구별하지는 않습니다. 해당 값은 2개의 숫자, 즉 사용된 메모리와 예약된 메모리 양을 표시합니다. 사용된 양이 예약된 양과 동일한 단위(B, MB, GB)를 공유하지 않는 경우 Unity는 단위를 표시하고, 그렇지 않으면 생략됩니다.
| 값 | 설명 |
|---|---|
| Managed Heap | 관리되는 코드가 사용하는 사용된 힙 크기 및 총 힙 크기입니다. 이 메모리에 대해 가비지 수집이 수행됩니다. |
| Graphics & Graphics Driver | 드라이버가 텍스처, 렌더 타겟, 셰이더 및 메시 데이터에 사용하는 추정 메모리 사용량입니다. |
| Audio | 오디오 시스템의 추정 메모리 사용량입니다. |
| Video | 비디오 시스템의 추정 메모리 사용량입니다. |
| Other | Unity가 추적하지만 특정 카운터에 보고되지 않는 네이티브 메모리를 표시합니다. 이 카테고리나 다른 카테고리의 구성에 대한 자세한 내용은 Memory Profiler 패키지를 사용하십시오. |
| Profiler | 프로파일러 기능이 시스템에서 사용하고 예약하는 메모리입니다. |
일반적으로 메모리에서 높은 비율을 차지하는 에셋 유형(텍스처, 메시, 머티리얼, 애니메이션 클립)의 오브젝트 인스턴스 양과 메모리에 누적된 크기(에셋, 게임 오브젝트, 씬 오브젝트)를 표시합니다.
참고: 이러한 통계는 릴리스 플레이어에서 사용할 수 없습니다.
| 값 | 설명 |
|---|---|
| Textures | 로드된 총 텍스처 수와 해당 텍스처가 사용하는 메모리 양입니다. |
| Meshes | 로드된 총 메시 수와 해당 메시가 사용하는 메모리 양입니다. |
| Materials | 로드된 총 머티리얼 수와 해당 머티리얼이 사용하는 메모리 양입니다. |
| Animation Clips | 로드된 총 애니메이션 클립 수와 해당 애니메이션 클립이 사용하는 메모리 양입니다. |
| Assets | 로드된 총 에셋 수입니다. |
| Game Objects | 씬의 총 게임 오브젝트 인스턴스 수입니다. |
| Scene Objects | 총 동적 UnityEngine.Object 인스턴스 수입니다. 이 수치에는 게임 오브젝트 수와 총 컴포넌트 수, 씬에서 에셋이 아닌 모든 것이 포함됩니다. |
| GC allocated in frame | 선택된 프레임에서 관리되는 할당의 양과 전체 크기를 바이트 단위로 표시합니다. |
이 설정을 활성화하면 Total Committed Memory 및 Total Memory Breakdown 차트를 선택한 프레임의 메모리 사용량으로 조정합니다. 이 설정을 비활성화하면 차트가 프레임 범위 내에서 사용된 총 메모리로 조정됩니다. 이 설정을 사용하면 전체 또는 상대적인 메모리 양이 프레임마다 어떻게 변하는지 파악할 수 있습니다.