天天看点

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)之内存泄露检测

继续阅读