ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Unity - 메모리 프로파일러(모듈)
    보관함 2020. 8. 5. 08:06

      메모리 프로파일러 모듈의 구성 

    먼저 메모리 프로파일러는 CPU 프로파일러와는 달리 프레임 차트를 거의 보지 않는다. 이유는 다음과 같다.

    • 메모리의 특성 메모리는 CPU와는 달리 특정 지점에서 피크가 생기지 않기에 전체적인 수치를 낮춰야 한다. 
    • 매니지드 언어의 특성 C#의 경우 매니지드 언어이기 때문에 사용자가 메모리 언로드 시점을 정하는 것이 아닌 GC를 Garbage Collect(이후 GC)를 통해 이뤄지므로 메모리의 변화가 GC를 기준으로 이뤄진다.

    그렇기에 메모리 프로파일링에서는 메모리 프로파일러 모듈의 세부 정보창을 기준으로 작업을 진행하게 된다.

    메모리 프로파일러 모듈의 경우 프레임 차트는 신경쓰지 않아도 된다

     

    메모리 프로파일러 모듈의 세부 정보창은 Simple모드와 Detailed 모드로 나뉜다. 이를 간략하게 설명하면 다음과 같다.

    • Simple 모드 메모리에 올라가 있는 에셋의 총 개수와 사용량을 표시한다.
    • Detailed 모드 메모리에 올라가 있는 에셋을 다섯 가지 분류로 나눠 계층적으로 표시한다. 개별 에셋의 용량과 참조 카운트, 어떤 개체에 의해 참조되고 있는지 등을 확인할 수 있다.

    Detailed 모드에서 분류 및 분류 방법은 다음과 같다.

    • Assets 사용자 또는 네이티브 코드에서 참조한 에셋
    • Built-in Resources 그래픽스 설정의 Always Included Shaders 리스트에 추가한 셰이더 등과 같은 Unity 에디터 리소스 또는 Unity 기본 리소스
    • Not Saved DontSave로 표시된 게임 오브젝트
    • Scene Memory 오브젝트 및 연결된 컴포넌트
    • Other 에셋, 게임 오브젝트 또는 컴포넌트가 아닌 오브젝트. Unity가 다양한 시스템에 사용하는 메모리 양 등과 같은 정보

    Detailed 모드의 5분류

     

      메모리 프로파일러 모듈 보는 법 

    바로 이전에 이야기한 것처럼 메모리 프로파일러는 프레임 차트를 거의 사용하지 않으며 상세 정보창을 위주로 최적화를 진행하는 것을 기본으로 한다.

     

    Simple 모드의 경우에도 개선이 필요한 부분을 찾기 위해서 보기보다는 개선을 적용한 이후 확인하는 용도로 사용한다.

    Simple 모드

     

    Detailed 모드는 Take Sample 버튼으로 현재 프레임을 분석하여 어떤 리소스가 사용되고 있고 어느 정도의 메모리를 차지하는지, 어느 영역에서 차지하는지 등을 확인하고 이곳에서 과도하게 큰 메모리를 차지하는 리소스를 확인하여 개선을 진행할 수 있다.

    Detailed 모드

    댓글

Designed by Tistory.