02. 메모리 릭 검출 (C++)

C++판 라이브러리에는 Live2D 내부에서 할당한 메모리에 대해서, 메모리 릭을 검출할 수 있는 기능이 있습니다.
정확히는 init()부터 dispose()까지 Live2D가 할당한 메모리에 대한 정보를 덤프합니다.

※ 이 기능은 DEBUG 빌드에서만 작동합니다. (VisualStudio라면 _DEBUG, XCode라면 DEBUG 매크로가 선언되어 있을 때)

//init을 호출하기 전 플래그를 설정합니다.
UtDebug::addMemoryDebugFlags( UtDebug::MEMORY_DEBUG_MEMORY_INFO_COUNT ) ;

Live2D::init(  );

/***** 모델이나 모션 생성, 파괴 등등 *****/

Live2D::dispose();//이 시점에 메모리 정보를 출력합니다.

출력 예
----------------- Live2D Memory Info -----------------
Successfully cleaned (no memory leaks found). 

  local malloc count  : remaining     : 0
  local malloc count  : total         : 48884
  local malloc memory : current       : 0 byte
  local malloc memory : peak          : 539 KB
  local malloc memory : total         : 1351 KB

  allocator malloc count  : remaining : 0
  allocator malloc count  : total     : 109
  allocator malloc memory : current   : 0 byte
  allocator malloc memory : peak      : 604 KB
  allocator malloc memory : total     : 802 KB

  LDObject           instance count : 1
  LDObject           total count    : 47303
  LDUnmanagedObject  instance count : 0
  LDUnmanagedObject  total count    : 1
------------------------------------------------------

출력되는 정보 중 중요한 부분이
local malloc count : remaining

allocator malloc count : remaining
입니다.
이 항목들이 0이 아닐 경우에는 Live2D 관련 객체가 정상적으로 해제되지 않았을 수 있습니다.

Comments