天天看點

Bullet(Cocos2dx)之記憶體洩露檢測

編寫的程式難免會有記憶體洩露,為了檢測記憶體洩露,可以采取各種各樣的措施,

今天向大家介紹一款windows下的記憶體檢測工具Visual Leak Detector for Visual C++

去官網下載下傳最新版本安裝。

用VS建立一個C++控制台項目,

1.将vld安裝目錄下的include的頭檔案copy到c++目錄下

2.把lib/win32(如果vs版本為64的,則選擇win64)copy到c++目錄,

//3.把bin/win32copy到c++的Debug目錄(先Debug運作c++)下

4.在main.cpp包含頭檔案#include “vld.h”

Bullet(Cocos2dx)之記憶體洩露檢測

編譯運作,會輸出

Bullet(Cocos2dx)之記憶體洩露檢測

表示無記憶體洩露

修改代碼

Bullet(Cocos2dx)之記憶體洩露檢測

再次運作

Bullet(Cocos2dx)之記憶體洩露檢測

發現有一位元組的記憶體洩露,同時你會看到記憶體洩露的代碼位置

為了以後建立cocos2dx項目記憶體檢測友善

1.複制include頭檔案到(VS安裝目錄)C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include

2.複制lib檔案到C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib

我安裝的為32的是以複制win32的

測試cocos2dx3.x建立項目使用cocos 引擎建立,操作如圖

Bullet(Cocos2dx)之記憶體洩露檢測
Bullet(Cocos2dx)之記憶體洩露檢測

#define VLD_FORCE_ENABLE 是為了開啟VLD記憶體檢測,檢視vld.h頭檔案發現

隻有define兩個的一個才能開啟記憶體檢測

Bullet(Cocos2dx)之記憶體洩露檢測

運作後關閉程式,發現記憶體洩露20個位元組,好吧,雖然有一點記憶體洩露,還是可以接受的

(有的版本有記憶體洩露有的沒有)

Bullet(Cocos2dx)之記憶體洩露檢測

現在去看看內建Bullet的cocos2dx程式是否也是20個位元組記憶體洩露,如果是的話,

說明我們寫的幾個Phyisics類是沒有記憶體洩露的,筆者運作後還是20位元組,程式還是比較穩定的

Bullet(Cocos2dx)之記憶體洩露檢測

繼續閱讀