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