我想计算系统的总物理内存使用率。
这是我的代码:

float totalmem(){

    DWORDLONG totalVirtualMem;
    MEMORYSTATUSEX memInfo;
    float virtualMemUsed;

    memInfo.dwLength = sizeof(MEMORYSTATUSEX);
    GlobalMemoryStatusEx(&memInfo);
    totalVirtualMem = memInfo.ullTotalPageFile;
    virtualMemUsed = (double) (memInfo.ullTotalPageFile - memInfo.ullAvailPageFile) / memInfo.ullTotalPageFile * 100;
    return virtualMemUsed;
}


但是答案与Windows任务管理器或进程资源管理器显示的答案不同。
我的代码有什么问题?

最佳答案

正确的代码:

float totalmem(){

DWORDLONG totalVirtualMem;
MEMORYSTATUSEX memInfo;
float virtualMemUsed;

memInfo.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memInfo);
//totalVirtualMem = memInfo.ullTotalPageFile;
virtualMemUsed = (double) (memInfo.ullTotalPhys - memInfo.ullAvailPhys) / memInfo.ullTotalPhys * 100;
return virtualMemUsed;
}

关于c - 计算系统的总物理内存使用率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11164618/

10-10 14:07