GetProcessMemoryInfo获取内存的问题

qq_24744321 2015-05-06 03:21:03
GetProcessMemoryInfo获取的内存为什么跟资源管理器的显示会不一样?

以下是代码

#include <Windows.h>
#include <psapi.h>
#include <stdio.h>

int main()
{
HANDLE handle = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS pmc;

char* p = 0;
int i = 0;
while (true)
{
Sleep(1000);

i += 10000;
p = new char[i];

GetProcessMemoryInfo(handle, &pmc, sizeof(pmc));
printf("pid=%d,bytes=%d,kb=%d\n", GetCurrentProcessId(), pmc.WorkingSetSize, int(pmc.WorkingSetSize / 1024));

delete p;
p = 0;
}

return 0;
}
...全文
2001 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wantaox 2015-11-14
  • 打赏
  • 举报
回复
好像 GetCurrentProcess 获取的是一个伪句柄,我用过也不成功。 后来用 OpenProcess 才好的
menttofly 2015-05-19
  • 打赏
  • 举报
回复
顶一下看会不会有人看到
menttofly 2015-05-19
  • 打赏
  • 举报
回复
同问啊!!搞得我毕设都不知道怎么办了,进程占用内存和任务管理器里面不一样,求高人解答
ForestDB 2015-05-14
  • 打赏
  • 举报
回复
https://msdn.microsoft.com/en-us/library/ms682050%28v=vs.85%29.aspx
赵4老师 2015-05-07
  • 打赏
  • 举报
回复
没人说过资源管理器里面的内存信息和GetProcessMemoryInfo返回的信息有对应关系。 我倒觉得和NtQuerySystemInformation返回的信息有对应关系。 搜“NtQuerySystemInformation”
qq_24744321 2015-05-07
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
VMMap 是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533
我要的是代码怎么回事
赵4老师 2015-05-06
  • 打赏
  • 举报
回复
VMMap 是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533
qq_24744321 2015-05-06
  • 打赏
  • 举报
回复
没人来回答么。急啊!急啊!急啊!急啊!急啊!急啊!

33,318

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧