【发布时间】:2012-02-07 10:42:46
【问题描述】:
我用过代码
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memInfo);
DWORDLONG totalVirtualMem = memInfo.ullTotalPageFile;
DWORDLONG virtualMemUsed = memInfo.ullTotalPageFile - memInfo.ullAvailPageFile;
DWORDLONG totalPhysMem = memInfo.ullTotalPhys;
提供于here
输出如下:2.3GB。
totalVirtualMem = 8.5 Gb
virtualMemUsed = 2.3 Gb
totalPhysMem = 4 Gb
这是否意味着我的程序需要 2.3Gb 的内存?您能否评论一下总虚拟内存和 RAM?我也无法运行此代码:
PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
SIZE_T virtualMemUsedByMe = pmc.PrivateUsage;
因为它给出了错误,
error C2664: 'GetProcessMemoryInfo' : cannot convert parameter 2 from 'PROCESS_MEMORY_COUNTERS_EX *' to 'PPROCESS_MEMORY_COUNTERS'
【问题讨论】: