Search

Memory Profiler

Class
메모리
Type
프로파일링
Created
2023/01/28 10:41
updated
2024/02/07 01:13
날짜

메모리 프로파일러

메모리 프로파일러는 유니티에서 메모리 사용을 분석할 수 있는 방법입니다.
메모리 프로파일링을 사용해야 되는 이유
메모리의 크기가 계속해서 커지고 있다고 하지만, 아직까지 모바일에서 사용할 수 있는 메모리는 제한적입니다.
모바일에서 제한적인 것을 강조하는 이유는 컴퓨터에서의 메모리를 사용하는 방법과 모바일에서 메모리를 사용하는 방법이 다르기 때문입니다.
물리적인 한계, 가상 메모리, CPU, GPU의 메모리와 모바일에선 통합된 부분 등등 여러가지 요소로 모바일에서는 아직까지 컴퓨터에 비해 메모리가 부족한 편입니다.
메모리 프로파일링 사용 방법
Unity에서 이번에 Memory Profiler 1.0을 정식 출시했습니다.
(이전엔 Pre Release로 출시해서 여러 셋팅과 문제들이 있었는데, 정식 출시하면서부터 많은 부분이 개선되었습니다. 다만, 속도는 아직까지.. ㅠㅠ)
메모리 프로파일러 설치 방법은 아래와 같습니다.
실무에서의 메모리 프로파일링
메모리 프로파일러를 통해, 아래 처럼 여러가지 상황에서 현재 사용중이 메모리를 정확하게 파악할 수 있습니다.
메모리 프로파일링의 활용법
이제 메모리 프로파일링을 통해 어떤 데이터가 메모리를 사용 중인지 확인할 수 있습니다.
메모리를 최적화하는 방법은 텍스쳐 아틀라스, 오브젝트 풀링 등등도 있지만,
메모리 누수를 잡는 것이 가장 중요합니다.
유니티에서 메모리 누수(Memory Leak)는 여러가지 이유로 발생할 수 있습니다.
씬에 원치않는 텍스쳐가 메모리를 잡아먹고 있거나, 프로그래머의 여러가지 메모리 누수가 발생하는 실수로 인해서 많이 발생합니다.
프로그래머가 개발을 할 때도 신경을 쓰겠지만 모든 것을 실수 없이 개발하는 것은 불가능합니다.
저는 개발할 때, 리팩토링을 할 필요 없이 만드는 것을 우선으로 하지만, 컨텐츠를 만든 이후에 간단하게 최적화를 하고 있습니다.
이 때, 메모리 프로파일링을 활용해서 에디터 환경에서 간단하게 확인하며, 도움을 받습니다.
과도한 메모리 프로파일링X
사실 에디터 환경에서 메모리 프로파일링을 하는 것은 모바일 환경과 많이 차이가 있어 중요치 않습니다.
때문에 에디터 환경의 메모리 프로파일링은 간단하게 확인하고 자신이 실수한 부분만 잡고 넘어가는 것이 바람직합니다.
기술적으로 오브젝트 풀링을 최적화 한다든가 아틀라스의 크기를 줄이는 부분에서는 Development 빌드로 apk를 만든 후, 실제로 모바일 환경에서 최적화를 해야 합니다.
위와 같은 사항들은 개발할 때, 한 컨텐츠를 만들고 빌드 후 테스트하면서 최적화를 하는 것은 너무 시간이 오래 걸리는 방법입니다. 또한, 출시 일에 모바일 스팩이 어떻게 바뀔지는 쉽게 예상할 수도 없습니다. 이러한 이유 때문에, 최적화는 대부분의 컨텐츠가 완성된 이후, 모바일 스팩이 어느 정도 확정된 다음 하는 것이 가장 좋습니다.