c++内存泄露(二):使用性能监视器进行内存泄露的确认
来源:互联网 发布:红帽群排名优化软件 编辑:程序博客网 时间:2024/05/18 08:40
对于服务器程序,在不停的运作中,如何去测试是否存在内存泄露,如果你的开发环境是在windows下,那么我们就可以使用windows自带的性能监视器来观察程序的性能。
使用此例子:
Test.cint main(){while (true){char *test = new char[100];Sleep(100);}cin.get();return 0;}
循环申请堆空间
(1) 开始运行程序test
(2) 打开性能监视器(Performance Monitor)
(3) 使用性能监视器中的数据收集器,进行数据的收集
(4)创建自定义的数据收集,按下图步骤进行配置。
图1 右击用户定义->新建->数据收集器
图2 填写新建项目名称->手动创建->下一步
图3,选择性能计数器->下一步
图4,点击添加->下一步
图5,选择process(进程选项),processor(处理器),这里的选项由需要监听的属性而定,这里暂且监听的是测试程序该进程的相关属性。
图6,选择该进程需要监听的项目 通常需要监听的是:Handle Count(句柄数)、private Bytes(程序拥有的私有字节)、Virtual bytes(虚拟内存)、working set - private (这个值就是任务管理器里面的内存使用量)
图7,选择多长时间记录一次
图8,下一步
图9图10,选择记录数据用制表符进行分隔,为了能用execl进行统计
图11,开启监听
图12 用execl 打开目标目录下的文件
图13,用折线图进行统计
从图中working set-private上升的曲线可以确定此程序存在内存泄露。
当程序遇到内存泄漏,我们应该做的是去定位内存泄漏的位置,并解决它。请看下一章节。
c++内存泄露(一):理解内存泄漏及内存泄漏常见情况
c++内存泄露(三):定位和解决内存泄露
- c++内存泄露(二):使用性能监视器进行内存泄露的确认
- Android内存泄露 (二)
- 使用DDMS Heap进行内存泄露调试
- Android性能优化学习(二)内存泄露分析工具Android Monitor 及MAT使用
- C 检测内存泄露
- C/C++内存泄露
- c/c++内存泄露
- c/c++内存泄露
- 内存泄露-C
- C/C++内存泄露
- (二):浅谈C/C++内存泄露及其检测工具
- 内存泄露检测工具使用
- ios性能测试-内存泄露
- Android性能优化--内存泄露
- Android内存泄露调试(二)
- C++内存泄露的检测(二)
- Jprofile(二) - 查找内存泄露
- 捕获Java内存泄露 (二)
- Redis 讲解系列之 Redis的五大数据类型
- 设计模式【外观模式Facade Pattern】
- 20171010离线赛总结
- node.js之async的使用(series,whilst)
- 2.第一个QT程序
- c++内存泄露(二):使用性能监视器进行内存泄露的确认
- java.io.Serializab接口
- <?Php ?>标签外的字符会输出
- android开发多国语言对照表
- 用cocoapods导入的三方库方法无法识别问题
- DELPHI高性能大容量SOCKET并发(四):粘包、分包、解包
- python_csv模块学习
- 北漂的日常
- Android开发之ListView选中某行后改变其背景色