Unity 메모리 할당자 커스터마이징 가이드

개요

Unity의 메모리 관리 시스템에서 할당자는 애플리케이션의 성능과 메모리 공간의 효율을 유지하는 중요한 역할을 합니다. 이 문서에서는 메모리 할당자 타입 및 커스터마이징 방법에 대해 설명하고, 각 할당자가 어떻게 작동하는지 이해하는 데 중점을 두겠습니다.


할당자 타입

Unity에는 총 다섯 가지 종류의 할당자가 존재합니다. 각 할당자는 서로 다른 알고리즘을 통해 메모리 블록을 할당하며, 다양한 용도에 맞게 커스터마이즈할 수 있습니다.

할당자 타입 알고리즘 용도
동적 힙 2단계 분리 맞춤(TLSF) 메인 / Gfx 할당자 등
버킷 고정 크기의 무잠금 작은 할당을 위한 공유 할당자
듀얼 스레드 스레드 및 크기 기반 메인 스레드 할당자 및 공유 스레드
스레드 로컬 스토리지 LIFO 스택 임시 할당
스레드세이프 리니어 FIFO 라운드 로빈 짧은 잡 데이터 전달을 위한 버퍼

동적 힙 할당자

동적 힙 할당자는 주로 메인 스레드에서 사용되는 할당자입니다. 이 할당자는 메모리 블록을 사용하며, 할당 크기가 블록의 절반을 초과할 경우 가상 메모리로 이동합니다. 예시: - 최대 사용량: 54.2MB - 할당 블록 크기: 16MB


버킷 할당자

버킷 할당자는 작은 할당을 빠르게 처리하기 위한 할당자입니다. 이 할당자는 매개변수로 설정된 고정 크기의 배수로 할당을 나누어 빠른 속도를 제공합니다. 예시: - 버킷 수: 1024개 (세분화가 16B일 경우)


듀얼 스레드 할당자

듀얼 스레드 할당자는 메인 스레드와 다른 모든 스레드가 사용 가능한 두 가지 동적 힙 할당자를 래핑합니다. 이 할당자는 두 할당자 간의 성능 조절을 지원합니다.


스레드 로컬 스토리지 할당자

스레드 로컬 스토리지(TLS) 할당자는 빠른 임시 할당을 위해 고유한 스택 메모리를 사용합니다. 이 스택 전용 할당자는 임시 데이터에 대해 매우 빠르게 접근할 수 있습니다.


스레드세이프 리니어 할당자

이 할당자는 FIFO 방식을 사용하며, 여러 워커 스레드 간의 짧은 기간 동안의 데이터 할당과 수정을 위해 설계되었습니다.


커스터마이징 방법

Unity에서 할당자 설정을 커스터마이즈하려면 다음 단계를 따르십시오:

  1. Unity 에디터에서 설정 수정하기:
  2. Project Settings > Memory Settings로 이동합니다.
  3. 수정할 값 옆의 잠금 아이콘을 클릭합니다.
  4. 커맨드 라인 인자 사용하기:
  5. 에디터 및 플레이어가 시작할 때 출력되는 할당자 설정 리스트를 확인하여 필요한 파라미터를 찾습니다.
  6. 예: -memorysetup-main-allocator-block-size=<new_value>

메모리 사용량 모니터링

애플리케이션의 메모리 사용량 보고서는 로그 파일에 저장됩니다. 이를 통해 메모리 사용 패턴을 분석하고, 최적의 할당 크기를 설정할 수 있습니다.


결론

Unity의 메모리 할당자를 이해하고 커스터마이징하는 것은 성능 최적화의 핵심입니다. 이 문서를 통해 제공된 정보들을 활용하여 애플리케이션의 메모리 관리 전략을 개선해 보세요.

Read more

Unity 매뉴얼 스크립팅 API 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 간단한 해설과 활용 예제들을 포함하고 있습니다. Unity는 게임 개발 플랫폼으로, 스크립팅 API를 통해 게임의 다양한 기능을 제어하고 수정할 수 있습니다. 버전 Unity 스크립팅 API는 여러 버전으로 제공됩니다. 주의 깊게 선택하여 사용하는 것이 중요합니다. 버전 설명 2023.2 최신 기능 및 버그 수정이 추가됨

By 이재협/실장/시스템개발실/PHYSIA

Unity 매뉴얼 스크립팅 API 설명서 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 정보를 제공하며, 버전에 따라 다르게 적용되는 내용들을 설명합니다. 본 문서에서는 주요 내용을 간단히 정리하고 활용 가능 예제를 통해 이해를 돕겠습니다. 기본 개념 Unity에서 스크립팅 API는 게임 오브젝트와 그들의 동작을 제어하기 위한 강력한 도구입니다. 이를 통해 게임의 로직, 물리 엔진, 애니메이션 및 사용자 인터페이스를

By 이재협/실장/시스템개발실/PHYSIA

Unity 스크립팅 API 가이드

이 문서는 Unity의 스크립팅 API에 대해 설명합니다. Unity는 게임 개발을 위한 인기 있는 엔진으로, 강력한 스크립팅 기능을 제공합니다. 이 가이드는 Unity에서 스크립트를 작성하고 사용하는 방법을 이해하는 데 도움을 드립니다. 목차 * Unity 스크립팅 소개 * 기본 스크립트 생성 * 스크립트 사용 예제 * 응용 프로그램 * 참고 자료 Unity 스크립팅 소개 Unity는 C# 프로그래밍 언어를

By 이재협/실장/시스템개발실/PHYSIA