当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<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++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .