Wwise 버전
Wwise SDK 2021.1.6
메모리 할당 최적화
참고: Wwise 버전 2019.2부터 메모리 매니저가 완전히 새롭게 변경되었습니다. 다음 내용은 2019.2 및 그 이후 버전에 해당됩니다.

Wwise 사운드 엔진 메모리 할당은 크게 두 그룹으로 나눌 수 있습니다. 하나는 사운드 엔진의 초기화에서 발생하는 고정된 크기의 할당 몇 개이며, 다른 하나는 동적 할당입니다.

고정 크기 할당

일부 고정 크기 할당은 초기화 매개 변수로 제어할 수 있습니다. 다음은 초기화 시 메모리 할당 제어의 목록입니다.

이들 중 uIOMemorySize 가 가장 중요합니다. 이 스트리밍 버퍼 크기는 스트리밍 사운드의 동시 재생 최대 개수 및 해당 사운드의 비트레이트, 스트리밍 사운드의 안전 타임라인(safety timeline)에 따라 설정돼야 합니다. 게임에 따라 기본값인 8 MB가 메모리 낭비로 여겨질 수도 있지만, 큰 값에서 시작해 자신의 메모리 사용 양상이 더 명확해지면 줄여나가는 것이 좋습니다. 스트리밍 버퍼 메모리에 대한 더 자세한 정보는 Audiokinetic Stream Manager 초기화 설정 를 참고하세요.

동적 할당

AkMemID 의 메모리 할당 카테고리에 대한 정보는 Wwise 문서를 참고하시면 사운드 엔진이 만들어내는 다양한 할당 유형에 대해 더 자세히 알 수 있습니다. 각 카테고리의 통계는 Wwise Advanced Profiler View의 Memory 탭에서 볼 수 있습니다.

디버그 전용 할당은 Monitor Queue와 Profiler 카테고리에 생성되며, Release 버전에서는 사용하지 않습니다. 이 카테고리들의 크기를 빼면 출시 버전의 메모리 사용량을 예측할 수 있습니다.

참고: 또한, 게임에 연결하지 않고 Wwise 자체에서 프로파일 정보를 캡처하면 Memory 탭에서 사운드 엔진 메모리 사용을 살펴볼 수 있습니다.

메모리 부족

사운드 엔진의 전체 메모리 할당은 AkMemSettings::uMemAllocationSizeLimit 초기화 매개 변수로 제어할 수 있습니다. 사운드 엔진은 한도 설정을 통해 메모리 부족 상황이 언제 발생했는지에 따라 다르게 반응합니다. 예를 들어, 다음과 같은 상황에서 메모리가 없는 경우 아래와 같은 현상이 발생합니다.

  • 사운드 엔진 초기화: 초기화에 실패합니다.
  • 뱅크 불러오기: 뱅크 불러오기에 실패합니다.
  • 볼륨 같은 매개 변수의 변환 효과: 변환 효과를 건너뛰고 해당 매개 변수는 변환 효과 없이 곧바로 대상 값으로 바뀝니다.
  • 사운드 재생: 재생에 실패하거나 더 낮은 우선순위의 재생이 멈추어 새로운 재생에 사용할 메모리를 확보합니다.

메모리 문제 감지하기

Wwise Profiler를 사용하면 게임에서 메모리 할당이 실패할 때마다 Capture Log에 경고 알림이 뜹니다. 이 알림 목록을 확인하여 게임 플레이 도중 어떤 메모리 카테고리가 한도에 다다랐는지 찾아낼 수 있습니다.

메모리 사용량을 높이는 원인들

다음 아이템은 메모리 사용량을 높일 수 있습니다.

  • 뱅크를 불러오면 Object와 Media 메모리 사용량을 높입니다. 각 뱅크가 사용하는 메모리의 양이 다르다는 점을 주의하세요. Object 카테고리에서 뱅크가 사용하는 메모리는 해당 뱅크의 물리적인 크기와는 상관이 없지만 뱅크에 들어있는 구조와 이벤트의 개수에 따라 달라집니다.
  • 잔향이나 지연과 같은 일부 효과는 재생시 Processing 메모리를 더 많이 소비합니다.
  • 한 번에 여러 사운드를 재생하면 Processing 메모리 사용량을 크게 증가시킵니다.
  • 짧은 시간 안에 여러 액션을 전송하면 Object 메모리 사용량을 증가시킵니다.
  • 게임 오브젝트를 등록하거나 '오브젝트 당' 각각의 매개 변수를 설정하거나 오브젝트 위치를 설정하는 데는 모두 약간의 메모리가 사용됩니다. 그러나 사용하지 않는 게임 오브젝트는 등록 해지해야 이 메모리를 아낄 수 있다는 점을 기억하세요. 그렇지 않으면 메모리 사용량이 계속 증가합니다.
주의:
최대 메모리 사용량을 확인하는 시험을 실행할 때, 게임이 사용하는 현재 스피커 환경 설정이 최대값으로 설정돼있도록 해야 합니다. 스피커가 스테레오로 설정돼있을 경우 사운드 엔진이 일부 최적화를 실행하여 다채널 때보다 메모리를 적게 사용하기 때문에 반드시 필요한 과정입니다.

더 자세한 정보는 다음 섹션을 참고하세요.

참고