Windows 获取内存 API 汇总及使用方法
本文示例代码:https://gitee/langshanglibie/windows-memory-api
一、获取系统内存(物理内存、虚拟内存)
GlobalMemoryStatusEx
- MEMORYSTATUSEX
MEMORYSTATUSEX statex;
statex.dwLength = sizeof(statex);
GlobalMemoryStatusEx(&statex); // GlobalMemoryStatusEx 只能针对当前进程调用,不能针对指定进程调用,因为没法传递进程句柄
printf("%*ld%% - 物理内存使用率\n", WIDTH, statex.dwMemoryLoad);
printf("\n");
printf("%*.2f GB - 物理内存总量\n", WIDTH, statex.ullTotalPhys / GB);
printf("%*.2f GB - 已经使用的物理内存总量\n", WIDTH, (statex.ullTotalPhys - statex.ullAvailPhys) / GB);
printf("%*.2f GB - 剩余物理内存总量\n", WIDTH, statex.ullAvailPhys / GB);
printf("\n");
printf("%*.2f GB - 可提交最大内存总量(物理内存 + pagefile)\n", WIDTH, statex.ullTotalPageFile / GB); // 等同于 PERFORMANCE_INFORMATION.CommitLimit
printf("%*.2f GB - 已经提交内存总量(物理内存 + pagefile)\n", WIDTH, (statex.ullTotalPageFile - statex.ullAvailPageFile) 

发布评论