影响服务器稳定的原因很多种,内存泄露是其中比较重要的一种。内存泄露严重的,很容易导致当机。而内存泄露的发生很经常。特别是新人介入游戏开发时。作为主程,不可能盯着每一行代码的增加/删除/修改。
那么 如何快速,有效的发现问题,并定位问题呢?
传统的方法有,bounds checker或者purify等工具。这些工具是大而全。功能非常完善。但是在实际使用时我们发现,启动一个服务器非常慢。每个点要跟踪,而且有些误报。一天下来,问题找的不多,人倒是很累。
我们的目标很简单,就是内存泄露。VLD的作用也很简单,检查,报告泄露,加载快速,方便。就是它了!接下来就是让他实际发挥作用。
step1,去网络上下载vld 1.9h(注意,更早的版本不支持vs2005,vs2008)。
step2,编译vld。
step3,在目标exe源代码中,增加一行 #include <vld.h>
step4,配置vld.ini,把需要检查内存泄露的dll,exe名都放ForceIncludeModules中。
step5,运行目标程序。
关闭exe时 您就会发现exe目录下多了一个memory_leak_report.txt。打开它,里面就列出了所有泄露的内存及其调用栈。