程序里碰到使用opencv1的内存泄漏问题,虽然最终也没有查出来,但是找到了这个好工具。
可以获取当前进程运行所占内存
转自
使用SDK的PSAPI (Process Status Helper)中的GetProcessMemoryInfo函数,其定义如下:

BOOL
WINAPI
GetProcessMemoryInfo(  HANDLE Process,  PPROCESS_MEMORY_COUNTERS ppsmemCounters,  DWORD cb  ); 

PROCESS_MEMORY_COUNTERS结构体定义如下:

typedef struct _PROCESS_MEMORY_COUNTERS {  DWORD cb;  DWORD PageFaultCount;  SIZE_T PeakWorkingSetSize;//峰值内存使用  SIZE_T WorkingSetSize;//内存使用  SIZE_T QuotaPeakPagedPoolUsage;  SIZE_T QuotaPagedPoolUsage;  SIZE_T QuotaPeakNonPagedPoolUsage;  SIZE_T QuotaNonPagedPoolUsage;  SIZE_T PagefileUsage;//虚拟内存使用  SIZE_T PeakPagefileUsage;//峰值虚拟内存使用
} PROCESS_MEMORY_COUNTERS; 

测试代码:

#include <iostream>
#include <windows.h>
#include <psapi.h>
#pragma comment(lib,"psapi.lib")
using namespace std;  void showMemoryInfo(void)
{    HANDLE handle = GetCurrentProcess();    PROCESS_MEMORY_COUNTERS pmc;    GetProcessMemoryInfo(handle,&pmc,sizeof(pmc));    //  cout<<"内存使用:"<<pmc.WorkingSetSize/1000 <<"K/"<<pmc.PeakWorkingSetSize/1000<<"K + "<<pmc.PagefileUsage/1000 <<"K/"<<pmc.PeakPagefileUsage/1000 <<"K"<<endl;
}  int main(int argc, char* argv)
{  showMemoryInfo();  cout<<"回收所有可回收的内存"<<endl;  EmptyWorkingSet(GetCurrentProcess());  showMemoryInfo();  cout<<"\r\n"<<endl;  cout<<"开始动态分配内存"<<endl;  char* buf[5];  for(int i=0;i<sizeof(buf)/sizeof(char*);i++)  {  buf[i]=new char[102400];  showMemoryInfo();  }  cout<<"\r\n"<<endl;  cout<<"开始释放内存"<<endl;  for(int i=0;i<sizeof(buf)/sizeof(char*);i++)  {  delete buf[i];  buf[i]=NULL;  showMemoryInfo();  }  cout<<"\r\n"<<endl;  cout<<"回收所有可回收的内存"<<endl;  EmptyWorkingSet(GetCurrentProcess());  showMemoryInfo();  return 0;
}  

————————————-输出结果————————————
内存使用:2854K/2854K + 884K/884K
回收所有可回收的内存
内存使用:217K/3002K + 888K/888K

开始动态分配内存
内存使用:897K/3002K + 995K/995K
内存使用:1003K/3002K + 1101K/1101K
内存使用:1110K/3002K + 1208K/1208K
内存使用:1212K/3002K + 1314K/1314K
内存使用:1323K/3002K + 1421K/1421K

开始释放内存
内存使用:1363K/3002K + 1421K/1421K
内存使用:1363K/3002K + 1421K/1421K
内存使用:1363K/3002K + 1421K/1421K
内存使用:1363K/3002K + 1421K/1421K
内存使用:847K/3002K + 888K/1421K

回收所有可回收的内存
内存使用:212K/3002K + 888K/1421K

psapi.lib动态库静态库头文件, 下载地址:
就是这里

windows 获取当前进程所占内存相关推荐

  1. C#获取特定进程CPU和内存使用率

    C#获取特定进程CPU和内存使用率 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentProces ...

  2. 获取指定进程所占用内存、指定GPU显存信息、所有GPU型号和驱动

    ######################################################### # 获取指定进程所占用内存 ############################ ...

  3. python获取当前进程的CPU内存等信息

    简介: psutil可以获取操作系统的各种信息,本文通过一个简单的示例介绍如何获取当前进程的CPU和内存信息. 安装: pip install psutil 代码示例: import psutil i ...

  4. windows 获取当前进程/线程的ID、句柄和内核地址

    获取当前进程 / 线程的 ID .句柄和内核地址 在用户态( RING3 )和内核态( RING0 )下,获取这些值的函数是不同的,而且这些函数的实现原理也是不同的,下面做个小结: 1. 用户态( R ...

  5. windows服务器system进程cpu占用率高解决方案(ntoskrnl.exe)

    之前给客户服务器部署过服务器监控程序,今天收到邮件告警提醒CPU过高,进入监控发现System进程突然升高,这个是系统进程,只查看进程cpu占用率没用,需要去查看System进程里的线程,具体是由那个 ...

  6. php-fcgi 重新,减小Fcgi环境下所占内存,减小php-cgi重启周期

    减小Fcgi环境配置下php-cgi进程所占内存,减小php-cgi重启周期 在fastcgi(FCGI)+PHP的配置中,php-cgi往往比较大占内存,本文研究一下减小php-cgi占内存的方法, ...

  7. linux共享内存示例,linux 进程间共享内存示例

    写入端: #include #include #include #include #include using namespace std; struct MappingDataType { int ...

  8. 命令top动态监控进程所占系统资源

    用top命令显示进程所占的系统资源 这个命令用于动态监控进程所占系统资源,每隔3秒变一次.这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面. 命令top用法 语法: to ...

  9. jvm疯狂吞占内存,罪魁祸首是谁

    分享一篇公司小伙伴的关于jvm占用内存的技术文章 导读:JVM是Java Virtual Machine的缩写,中文名为Java虚拟机.它是一种用于计算设备的规范,是一个虚构出来的计算机,主要通过在实 ...

  10. 用VC写Assembly代码(6)--附录2[windows进程中的内存结构]

    在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识. 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据.那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变 ...

最新文章

  1. 操作系统知识点:全面
  2. 休斯顿大学研究人员构建具有神经功能的软体机器人
  3. SEO优化可以从这几个方面着手
  4. 【Python】青少年蓝桥杯_每日一题_9.19_三行英文字母
  5. python hsv inrange 范围_仅20行代码,用python给证件照换底色
  6. mysql 数据库设置mysql注入_MYSQL数据库浅析MySQL的注入安全问题
  7. 编程实战:如何管理代码里的常量
  8. RISC 和 CISC 区别
  9. hbase 根据主键查询
  10. 机器学习实战(五)支持向量机SVM(Support Vector Machine)
  11. 用wrk测试nginx/nodejs/golang
  12. 大数据分析平台的作用有什么
  13. Packet Tracer 5.0实验(七) 路由器单臂路由配置
  14. bzoj 2844: albus就是要第一个出场
  15. JDK安装环境变量配置以及java命令可用但javac命令不可用解决方案
  16. 归并排序 MergeSort
  17. 余世维《成功经理人讲座》之重要又紧急的事情
  18. 没有装php可以用phpmyadmin,phpMyAdmin 安装及问题总结
  19. 以树莓派为控制中心的软硬件之开发之脑电波模块
  20. geo数据差异分析_GEO2R:对GEO数据库中的数据进行差异分析

热门文章

  1. 定点补码加减法运算_定点整数的加减法
  2. 笔试题目——研发工程师笔试题
  3. win10 微信/QQ等能听到别人说话,别人听不到自己说话解决方案
  4. 创建、清除interval定时器/interval定时器无法清除/判断定时器是否存在
  5. codeforces633H Fibonacci-ish II
  6. [莫队算法 线段树 斐波那契 暴力] Codeforces 633H Fibonacci-ish II
  7. 抖音极速版/快手极速版自动浏览
  8. ES index not_analyzed
  9. Index.ANALYZED in lucene4 is deprecated
  10. excel函数去重_excel去掉重复值的函数用法