对于服务器程序,在不停的运作中,如何去测试是否存在内存泄露,如果你的开发环境是在windows下,那么我们就可以使用windows自带的性能监视器来观察程序的性能。

使用此例子:

// Test.c
int 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++内存泄露(三):定位和解决内存泄露
--------------------- 
作者:invisible_sky 
来源:CSDN 
原文:https://blog.csdn.net/invisible_sky/article/details/78205576 
版权声明:本文为博主原创文章,转载请附上博文链接!

c++内存泄露:使用性能监视器进行内存泄露的确认相关推荐

  1. 如何使用性能监视器监控内存

    步骤1:打开性能监视器 1.按Win+R,打开运行窗口: 2.输入"perfmon",敲回车键. 步骤2:添加计数器 1.在性能监视器中点"X",删掉当前曲线: ...

  2. 【内存泄露】Memory Leaks 内存优化

    什么是内存泄露 内存管理一直是Java 所鼓吹的强大优点.开发者只需要简单地创建对象,而Java的垃圾收集器将会自动管理内存空间的分配和释放. 但在很多情况下,事情并不那么简单,在 Java程序中总是 ...

  3. android中内存泄露,Android中的内存泄露

    编辑推荐: 本文来自于csdn,本文主要从java的内存模型讲起,最终举出几个内存泄露的例子和解决方案. java运行时内存模型 具体信息:http://gityuan.com/2016/01/09/ ...

  4. JVM内存管理概述与android内存泄露分析

    一.内存划分 将内存划分为六大部分,分别是PC寄存器.JAVA虚拟机栈.JAVA堆.方法区.运行时常量池以及本地方法栈. 1.PC寄存器(线程独有):全称是程序计数寄存器,它记载着每一个线程当前运行的 ...

  5. js内存泄露 垃圾回收_Java内存体系结构(模型),垃圾回收和内存泄漏

    js内存泄露 垃圾回收 Java内存架构(Java内存模型) 上面是堆的Java内存模型以及Java虚拟机(JVM)中运行的任何Java应用程序的PermGen. 还提供了比率,以使您更好地了解如何在 ...

  6. linux 内存泄漏 定位,一种内存泄露检查和定位的方法

    一个系统后台服务进程,可能包括多个线程,在生成环境下要求系统程序能够稳定长时间稳定运行而不宕机.其中一个基本的前提就是需要保证系统程序不存在内存泄露.那么,该如何判读系统程序是否存在内存泄露呢?如果存 ...

  7. java 内存泄露 书籍_java虚拟机内存溢出和泄漏实例

    测试参数设置: 1.循环调用new A()实现堆溢出,java.lang.OutOfMemoryError: Java heap space, 虚拟机参数:-Xms1M -Xmx1M -XX:+Hea ...

  8. Android leak内存,GitHub - jin870132/memoryleakdemo: 安卓内存泄露几种常见形式及解决方案...

    安卓内存泄露几种常见形式及解决方案 一.前言 1.内存溢出与内存泄露 内存溢出(oom),是指程序在申请内存时,没有足够的内存空间供其使用,出现oom:比如申请了一个integer,但给它存了long ...

  9. python的内存泄露_Python 程序的内存泄露,教你一招来解决?

    如果大家在 Linux 或者 macOS 下面运行一段可能导致内存泄露的程序,那么你可能会看到下面这样的情况: 而如果你用的系统是 Windows,那么可能电脑直接就卡死了. 但是,调试这种 OOM( ...

最新文章

  1. Javaweb中提到的反射浅析(附源码)
  2. 高性能mysql_事务及4种隔离级别
  3. 用mtrace定位内存泄漏
  4. moodle3.7中文语言包
  5. 一直跳出来 visual_六天时间排出来肾结石,这种经历再也不要了
  6. 雷电3菊链功能_同轴科技推出5款USB-C全功能数据线,清一色内置同轴线缆
  7. 由来源地址决定显示什么页面
  8. android 禁止用户访问u盘_如何禁止u盘复制文件 禁止u盘复制文件方法【介绍】
  9. 百度编辑器UEditor的使用方法
  10. 计算机无法读取exe文件,exe无法正常运行怎么办 电脑打不开exe文件的解决方法...
  11. Maya无法创建新模型解决方案1
  12. W: Possible missing firmware /lib/firmware/i915/skl_guc_49.0.1.bin for module i915
  13. 『杭电1869』六度分离
  14. iFit(R)带来健身突破:使用iFit ActivePulse™实现个人化的自动心率训练
  15. 斯坦福cs224n教程--- 学习笔记1
  16. RHCA回忆录---RH236介绍
  17. 什么是优化问题 Optimization Problem
  18. Altium Designer -- EMC/EMI电路设计经验
  19. A4988驱动步进电机
  20. 项目案例:QQ数据库管理

热门文章

  1. 数据分析案例--红酒数据集分析
  2. 全局变量与静态全局变量的区别
  3. vue-cli项目中引入vue-i18n
  4. CSS宽度计算calc()
  5. 家里无线网络重置的办法
  6. frp内网穿透+Nginx反向代理
  7. 系统安全-使你的电脑固若金汤,百毒不侵
  8. J1900安装ContOS7 U盘引导
  9. ansible的template、tags、roles模块及应用
  10. linux 关闭redis 命令_linux关闭redis命令 redis配置redis的服务器启动和关闭 - Redis - 服务器之家...