如何获得gcc-mingw编译的进程的最大内存使用量

时间:2013-01-25 13:53:57

标签: c++ windows mingw

我有一个C ++代码。我可以编辑它。我想获得代码所做进程的最大内存使用量,所以我找到一些函数来查看内存使用情况。

我已经搜索了三天,但我找不到任何信息。 (我尝试了其中一些,例如GetProcessMemoryInfo,但它没有用)

请给我一些建议。谢谢:))

1 个答案:

答案 0 :(得分:3)

  

我尝试了其中一些,例如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链接。