<b>菜鸟也能搞定C++内存泄露</b>[VC/C++编程]
本文“<b>菜鸟也能搞定C++内存泄露</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
后台
C++内存分配与释放均由用户代码自行掌握,机动的机制有如潘多拉之盒,即让程序员有了更广的施展空间,也产生了代代相传的内存泄露问题.关于新手来说,最常犯的错误就是new出一个对象而忘掉释放,关于普通小利用程序来说,一点内存空间不算什么.但是当内存泄露问题呈目前需求24小时运行的平台类程序上的时刻,将会使系统可用内存飞速削减,最后耗尽系统资源,招致系统崩溃.
所以学会若何避免并查抄内存泄露,是一个合格的c++程序员必须具有的本领.但是由于内存泄露是程序运行并满意一定条件时才会发生,直接从代码中查出泄露缘由的难度较大,并且一旦内存泄露发生在多线程程序中,从大量的代码中要靠人工找出泄露缘由,无论对新人还是熟行都是一场恶梦.
本文介绍一种在vs2003中查抄内存泄露的办法,供各位新人熟行参考,在vc6中实现需求做一些变更,详情可自行参照相关资料.
查抄战略解析
首先,假定我们需求检测一个24小时运行的平台程序的内存泄露情形,我们无法肯定具体的内存泄露速度,但是我们可以肯定该程序在一按时间内(如10分钟)泄露的内存量是接近的,设为L(eak).
考虑在10分钟的运行时间内程序新申请到的内存A(lloc),这部份内存其实包含了程序运行正常申请,并会在后续运行中举行释放的普通内存块N(ormal)和泄露的内存L,即:
A = N + L
在后续的运行中,由于N部份不断的申请和释放,所以这部份的总量基本上是不变的,而L部份由于只申请而不释放,占用的内存总量将会越来越大.
将这个后果放到运行时间轴上,目前我们察看程序运行中的20分钟,我们假定内存泄露速度为dL/10分钟,时间轴以下:
----------------|--------------------|-------------------|----------------------------
以上是“<b>菜鸟也能搞定C++内存泄露</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |