- 4
- 0
- 约2.08万字
- 约 21页
- 2019-07-01 发布于广东
- 举报
内存泄漏检测方法
?对于不同的程序可以使用不同的方法来进行内存泄漏的检查,还可以使用一些专门 的工具来进行内存问题的检查,例女口 MemProof、AQTime、Purify BundsChecker 等。
? 也可以使用简单的办法:利用Windows自带的Perfmon來监控程序进程的handle count、Virtual Bytes 和 Working Set 3 个计数器。
Handle Count记录了进程当前打开的句柄个数,监视这个计?数器有助于发现程序是否存在句 柄类型的内存泄漏;
Virtual Bytes记录了程序进程在虚拟地址空间上使用的虚拟内存的大小,Virtual Bytes —*般 总大于程序的Working Set,监视Virtual Bytes可以帮助发现一些系统底层的问题;
Working Set记录了操作系统为程序进程分配的内存总量,如果这个值不断地持续增加,而 Virtual Bytes却跳跃式地增加,则很可能存在内存泄漏问题。
堆栈内存泄漏
?堆栈空间不足会导致在受托管的情况下引发StackOverflowException类型的异常,线 程泄漏是堆栈内存泄漏的其中一种。线程发生泄漏,从而使线程的整个堆栈发生泄 漏。
?如果应用程序为了执行后台工作而创建了大量的工作线程,但却没有正常终止这些 线程,则可能会引起线程泄漏。
一个堆栈内存泄漏的例子
原创力文档

文档评论(0)