admin 管理员组

文章数量: 1184232

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) 

本文标签: 使用方法 内存 Windows api