首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包

马宁的Windows Mobile开发研究 [加入]

在这里可以讨论所有关于Windows Mobile开发的话题,无论是.NET Compact Framework还是C++,无论是SQL Mobile还是Mobile Software Factory。而我唯一的期望就是,大家在问问题的同时,也将自己的经验在这里分享。
求助:如何获取一个进程所占内存的大小
发表时间:2008-07-21 18:12:13   楼主:sandyqy

马老师,请教一个问题:如何获取一个进程所占内存的大小?我找了半天,一直没有寻找到答案,希望马老师能够指教一二。

我目前采用:

DWORD GetUsedMemory(DWORD pID)
{
 DWORD memUsage = 0;
 HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPHEAPLIST, pID);
 if (INVALID_HANDLE_VALUE != hSnapShot)
 {
  HEAPLIST32 heapList;
  heapList.dwSize = sizeof(HEAPLIST32);
  BOOL  bOk = Heap32ListFirst(hSnapShot, &heapList);
  for (; bOk; bOk = Heap32ListNext(hSnapShot, &heapList))
  {
   HEAPENTRY32  he;
   he.dwSize = sizeof(HEAPENTRY32);
   BOOL fOK = Heap32First(hSnapShot, &he, pID, heapList.th32HeapID);
   for(; fOK; fOK = Heap32Next(hSnapShot, &he))
   {
    memUsage += he.dwBlockSize;
   }
  }

  // 关闭快照句柄
  CloseToolhelp32Snapshot(hSnapShot);
 } 

 return memUsage;

}

 

这个方法与实际有出入,有没有什么方法可以更快捷更精确么?请指教。





 
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|版权声明|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo