我有一个C ++代码。我可以编辑我想获得由代码构成的进程的最大内存使用率,因此我正在寻找一些函数来窥视内存使用率。
我已经搜索了三天,但找不到任何信息。 (我尝试了其中的一些,例如GetProcessMemoryInfo
,但是没有用)
请给我一些建议。谢谢 :)
最佳答案
我尝试了其中的一些,例如GetProcessMemoryInfo
,但是没有用
以下基于Collecting Memory Usage Information For a Process的内容适用于我:
#include <windows.h>
#include <stdio.h>
#include <psapi.h>
int main() {
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, GetCurrentProcessId() );
if (NULL != hProcess) {
if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) ) {
printf( "PeakWorkingSetSize: 0x%08X\n", pmc.PeakWorkingSetSize );
printf( "WorkingSetSize: 0x%08X\n", pmc.WorkingSetSize );
// ... add other members from pmc, as needed ...
}
CloseHandle( hProcess );
}
}
编译并与
g++ -o procinfo procinfo.cpp -lpsapi
链接。