02. 檢測記憶體漏失(memory leak)(C++)

C++版中為協助節省Live2D內部使用記憶體,可以檢測記憶體漏失。
具體內容為顯示從init()到dispose為止Live2D節省的記憶體。

※這個功能僅在DEBUG build時才會啟動。(如為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
此2項目
上述2項目的值如不是0時,表示忘了釋放Live2D關聯的物件。

コメント