内存使用过高点检checklist】的更多相关文章

正在运行的程序按照内存段来组织,内存段的类型有如下几种: 代码段:用户程序指令,长期存在内存中 数据段:全局变量等,长期存在内存中 堆:局部变量,参数参数等,短期存在内存中 栈:动态存储,可变 代码段: 问题1:是否存在无用代码片段(函数,变量),无用全局变量,无用的类私有变量等 点检手段: 通过静态检测工具来分析,或者人工grep的方法 改进手段:直接删除 问题2:是否存在大量的代码片段宏 点检手段:IDE,分析源文件 改进手段:用函数来代替宏 问题3:是否存在大量重复代码 点检手段:通过静态…
转自:http://hi.baidu.com/jasonlyy/item/9ca0cecf2c8f113a99b4981c 本文针对 linux 下的 C++ 程序的内存泄漏的检測方法及事实上现进行探讨.当中包含 C++ 中的 new 和 delete 的基本原理,内 存检測子系统的实现原理和详细方法,以及内存泄漏检測的高级话题.作为内存检測子系统实现的一部分,提供了一个具有更好的使用特性的相互排斥体 (Mutex)类. 1.开发背景 在 windows 下使用 VC 编程时,我们通常须要 DE…
http://hantayi.blog.51cto.com/1100843/383578 引言 当我们需要在用户区显示一些图形时,先把图形在客户区画上,虽然已经画好但此时我们还无法看到,还要通过 程序主动地刷新用户区,强制Windows发送一条WM_PAINT消息,这将引发视类OnDraw函数简单地将所有的图形对象重画,这样才完成了图形的 显示工作,但在刷新的同时会引起较明显的闪烁尤其是当画面面积较大.图像元素过多时尤为明显甚至达到无法正常工作的地步.因此,我们需要做相应的处理.本 文介绍了采用…
对于一个c/c++程序猿来说,内存泄漏是一个常见的也是令人头疼的问题.已经有很多技术被研究出来以应对这个问题,比方 Smart Pointer,Garbage Collection等.Smart Pointer技术比較成熟,STL中已经包括支持Smart Pointer的class,可是它的使用似乎并不广泛,并且它也不能解决全部的问题:Garbage Collection技术在Java中已经比較成熟,可是在c/c++领域的发展并不顺畅,尽管非常早就有人思考在C++中也增加GC的支持.现实世界就是…
谈谈JavaScript 中的变量. 在JavaScript 中使用变量的优点:变量保存在计算机的内存中,变量很适合于保存暂时性的数据 ,变量仅仅具有有限的生存期,当 用户关闭了页面或者打开一个新的页面,变量就会被释放. 在JavaScript 代码中,变量名是大写和小写敏感的,另外,某些特定的单词 或字符不能作为变量名.这些特定的单词就是JavaScript 中 的保留字.比如:var. with等,某些特殊字符也不能用在变量名中,比如&字符和百分号%字符.JavaScript 变量名中能够使…
在过去,每次编写C/C++程序的时候,VLD差点儿是我的标配.有了它,就能够放心地敲代码,随时发现内存溢出. VLD最高可支持到Visual Studio 2012.不知道以后会不会支持Visual Studio 2013,但反正眼下是不支持的. 相关的讨论见:https://vld.codeplex.com/discussions/471214 那么在Visual Studio 2013下还是老老实有用MFC的内存溢出检測工具,或者用WinDBG吧. 推荐一篇文章:<Memory Leak D…
功能: 用于检測c++程序的内存泄露. 原理: 事实上非常easy,就是通过函数的重载机制,捕获应用程序的new, new[] , delete , delete[], malloc,calloc,free等内存操作函数. 特点: 因为在检測的过程中,须要记录用户程序内存分配信息,所以工具本身必须进行内存动态分配.为了提高内存分配效率,程序实现了两个链表. 1.空暇链表,事实上就是一个简单的内存池 //定义一个结构,保存内存分配信息 typedef struct _tagMemoryInfo {…
Memwatch简单介绍 在三种检測工具其中,设置最简单的算是memwatch,和dmalloc一样,它能检測未释放的内存.同一段内存被释放多次.位址存取错误及不当使用未分配之内存区域.请往http://www.linkdata.se/sourcecode.html下载最新版本号的Memwatch. 安装及使用memwatch 非常幸运地,memwatch根本是不须要安装的,由于它仅仅是一组C程序代码,仅仅要在你程序中添�memwatch.h,编译时加上-DMEMWATCH -DMW_STDIO…
调了几个小时,到最后发现内存泄露的原因是opencv的cvClone函数,採用cvCopy函数后,问题解决. vs2010使用vld进行内存泄露检測 (1) 下载vld工具 (2) 将D:\Program Files\Visual Leak Detector\include;D:\Program Files\Visual Leak Detector\lib\Win32;分别增加include和lib的路径 (3) 将D:\Program Files\Visual Leak Detector\bi…
使用简单介绍     在敲代码的过程中.难免会遇到内存泄露的时候.这个时候假设手工查找内存泄露,不说方法没有通用的,就是真的要自己手工查找也是非常耗时间和精力的.诚然.我们能够借助一些工具,并且我们还会惊奇地发现这些工具非常实用(比方Intel的内存泄露检測工具).可是由于往往这些工具安装比較麻烦,而我们写的程序又不是非常大,所以我们也许能够找个更小巧的方法.微软就提供了这个方案.我们仅仅须要在程序中加入几行代码,就能够发现内存泄露的问题,然后我们就能够定位内存泄露了(自己用几行代码就能够实现,…