0

私はC++コードを持っています。編集できます。コードによって作成されたプロセスの最大メモリ使用量を取得したいので、メモリ使用量を確認するための関数をいくつか見つけています。

これを3日間検索しましたが、情報が見つかりません。(私はそれらのいくつかを試しましGetProcessMemoryInfoたが、それはうまくいきませんでした)

アドバイスをお願いします。ありがとう :)

4

1 に答える 1

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ます。

于 2013-01-25T14:15:06.987 に答える