GetProcessMemoryInfo获取内存的问题

[复制链接]
查看11 | 回复8 | 2021-1-27 06:45:35 | 显示全部楼层 |阅读模式
GetProcessMemoryInfo获取的内存为什么跟资源管理器的显示会不一样?

以下是代码
#include
#include
#include
intmain()
{
HANDLEhandle=GetCurrentProcess();
PROCESS_MEMORY_COUNTERSpmc;
char*p=0;
inti=0;
while(true)
{
Sleep(1000);
i+=10000;
p=newchar;
GetProcessMemoryInfo(handle,&pmc,sizeof(pmc));
printf("pid=%d,bytes=%d,kb=%d\n",GetCurrentProcessId(),pmc.WorkingSetSize,int(pmc.WorkingSetSize/1024));
deletep;
p=0;
}
return0;
}
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层


没人来回答么。急啊!急啊!急啊!急啊!急啊!急啊!
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
VMMap是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533

回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
引用2楼zhao4zhong1的回复:VMMap是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533

我要的是代码怎么回事
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
没人说过资源管理器里面的内存信息和GetProcessMemoryInfo返回的信息有对应关系。
我倒觉得和NtQuerySystemInformation返回的信息有对应关系。
搜“NtQuerySystemInformation”

回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
https://msdn.microsoft.com/en-us/library/ms682050%28v=vs.85%29.aspx
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
同问啊!!搞得我毕设都不知道怎么办了,进程占用内存和任务管理器里面不一样,求高人解答
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
顶一下看会不会有人看到
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
好像GetCurrentProcess获取的是一个伪句柄,我用过也不成功。
后来用OpenProcess才好的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行