在Visual Studio中记录CPU使用情况

时间:2017-06-30 06:45:17

标签: c++ visual-studio logging cpu-usage

我想在Visual Studio中记录我的C程序的CPU使用情况。使用性能配置文件我能够查看C程序的CPU使用情况的图形表示。但是我应该做什么或者应该将哪些代码添加到现有代码中,这样我就可以在文本或excel文件中记录我的程序的CPU使用率。

1 个答案:

答案 0 :(得分:2)

最简单的做法可能就是创建一个线程,只使用GetProcessTimes来获取进程'当前CPU使用率,将其写入文件,睡眠一秒,然后重复。然后,您可以(例如)设置一个信号告诉它退出:

FILETIME creation, done, kernel, user;
int PID;

std::atomic<bool> finished = false;

std::thread logger([&] {
    printf("seconds\n");
    while (!finished) {
        GetProcessTimes(GetCurrentProcess(), &creation, &done, &kernel, &user);

        SYSTEMTIME used_k, used_u;

        FileTimeToSystemTime(&kernel, &used_k);
        FileTimeToSystemTime(&user, &used_u);

        DWORD milliseconds = used_k.wMilliseconds + used_u.wMilliseconds;
        DWORD seconds = used_k.wSecond + used_u.wSecond;

        printf("%d.%3.3d\n", seconds, milliseconds);
        Sleep(1000);
    }
});

// Do work to be timed/logged here

finished = true;
logger.join();