Version: 2017.3
렌더링 프로파일러
오디오 프로파일러

메모리 프로파일러

애플리케이션의 메모리 사용을 검사하기 위해 메모리 프로파일러에서 사용할 수 있는 모드에는 두 종류가 있습니다. 모드는 하단 패널의 왼쪽 상단에 있는 드롭다운에서 선택합니다.

심플(Simple)

Simple 뷰에는 Unity 전역에서 메모리가 사용되는 방법에 대한 간단한 개요가 프레임별로 실시간 표시됩니다.

Unity는 운영체제에 메모리를 너무 자주 요청하는 것을 방지하기 위해 메모리 풀을 예약합니다. 메모리 풀은 예약된 용량과 사용된 용량으로 표시됩니다.

여기에는 다음이 포함됩니다.

  • Unity 네이티브 Unity 코드에서 할당별로 추적되는 메모리의 양
  • Mono 총 힙 크기와 관리 코드에서 사용된 힙 크기. 이 메모리는 가비지로 수집됩니다.
  • GfxDriver 드라이버가 텍스처, 렌더 타겟, 셰이더 및 메시 데이터에 사용하는 메모리의 추정량
  • FMOD 오디오 드라이버의 추정 메모리 사용량
  • 프로파일러 프로파일러 데이터에 사용된 메모리

일부 드라이버에서 사용하는 메모리와 실행 가능 코드에 사용되는 메모리 등 메모리 프로파일러에서 추적하지 않은 사용량이 있기 때문에 표시되는 숫자는 작업 관리자 또는 활동 모니터에 표시되는 숫자와 다릅니다.

메모리 통계에서는 가장 일반적인 몇 가지 에셋/오브젝트 타입에 대해 표시합니다. 표시되는 통계는 카운트와 사용된 메모리(메인 및 비디오 메모리) 등입니다.

  • 텍스처
  • 메시
  • 머티리얼
  • 애니메이션
  • 오디오
  • 오브젝트 카운트

Object Count 는 생성된 모든 오브젝트의 총 개수입니다. 이 숫자가 시간이 갈수록 커지면 게임에서 영구적으로 파괴되지 않는 오브젝트를 몇 개 만들고 있기 때문입니다.

상세(Detailed)

Detailed 뷰에서는 현재 상태의 스냅샷을 만들 수 있습니다. Take Sample 버튼을 사용해 자세한 메모리 사용 정보를 캡처할 수 있습니다. 이 데이터를 가져오려면 어느 정도의 시간이 소요되므로 이 뷰에서 세부 정보를 실시간으로 확인할 수 있을 것이라고 기대하면 안 됩니다. 샘플을 수집한 후에는 프로파일러 창이 업데이트되어 메모리 사용 정보를 탐색할 수 있는 트리 뷰가 표시됩니다.

개별 에셋 및 게임 오브젝트 메모리 사용 정보뿐 아니라, 게임 오브젝트가 메모리에 있는 이유도 표시합니다. 이에 대한 일반적인 이유는 다음과 같습니다.

  • Assets: 에셋이 사용자 또는 네이티브 코드에서 참조됨
  • Built-in Resources: Unity 에디터 리소스 또는 Unity 디폴트 리소스
  • Not Saved: DontSave로 표시된 게임 오브젝트
  • Scene Memory: 게임 오브젝트 및 연결된 컴포넌트
  • Other: 위 카테고리에서 표시되지 않은 게임 오브젝트

리스트에서 게임 오브젝트를 클릭하여 프로젝트 또는 씬 뷰에 표시합니다.

에디터에서 프로파일링할 때 메모리 프로파일러에 표시되는 숫자는 모두 에디터의 메모리 사용량을 나타냅니다. 이 숫자는 Unity 에디터를 실행하는 데 메모리가 더 많이 사용되기 때문에 플레이어에서 실행할 때보다 일반적으로 더 큽니다. 앱에 대한 더 정확한 숫자와 메모리 사용량을 얻으려면 프로파일러 연결을 사용해 실행 중인 플레이어에 연결합니다. 그러면 타겟 디바이스의 실제 사용량이 표시됩니다.

System.ExecutableAndDlls에 보고되는 메모리는 읽기 전용이므로 운영체제에서 필요한 경우 해당 페이지를 폐기하고 나중에 파일 시스템에서 다시 로드할 수 있습니다. 그러면 메모리 사용량이 줄어들고 운영체제에서 애플리케이션을 종료하기로 결정하는 직접적인 원인이 되지 않습니다. 일부 페이지는 동일 프레임워크를 사용하는 다른 애플리케이션과 공유될 수도 있습니다.

렌더링 프로파일러
오디오 프로파일러