GlobalMemoryStatus详解

VOID GlobalMemoryStatus(
LPMEMORYSTATUS lpBuffer // 内存状态的指针
);
用法我就不讲了,现在我们讲讲MEMORYSTATUS结构里每个成员分别代表什么
typedef struct _MEMORYSTATUS {
DWORD dwLength;
DWORD dwMemoryLoad;
SIZE_T dwTotalPhys;
SIZE_T dwAvailPhys;
SIZE_T dwTotalPageFile;
SIZE_T dwAvailPageFile;
SIZE_T dwTotalVirtual;
SIZE_T dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;
DWORD dwLength; 使用之前先令其等于结构的大小
dwMemoryLoad:内存负载率,其实也就是内存使用率
dwTotalPhys:总的物理内存,我在我的512MB虚拟机上测试为536330240bytes,比512MB少540672bytes,其实这部分被用作引导进程
dwAvailPhys:可用的物理内存=dwTotalPhys*(1-dwMemoryLoad)
dwTotalPageFile:总的页面文件的大小,其实就是物理内存加虚拟内存的总大小,但是这里有个问题,物理内存少了一部分
这里写图片描述这里写图片描述
为什么这么说,当前分配的虚拟内存为672MB,但是可用内存总数为1154MB,1154-672=482MB,当然这个值可能因不同的计算机而有差异,但是在我的机器上有512MB-482MB=30MB被挪作他用,刚好核心内存为26MB,再加上显卡最大内存为8MB,我算一半,以上只是我的猜测,写在这里,只是作为我的一种猜想
dwAvailPageFile:很显然这个值等于现在正在使用的物理内存+已分配的虚拟内存
dwTotalVirtual:每个进程的的地址空间的总字节数,比2GB少128KB
dwAvailVirtual:每个进程的的地址空间的可用字节数,比如你在地址空间中申请了一个64KB(分配粒度)的内存,那么,地址空间的可用字节数就会再减去64KB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值