gpt4 book ai didi

c++ - QueryPerformanceCounter 和奇怪的结果

转载 作者:行者123 更新时间:2023-11-28 06:10:44 28 4
gpt4 key购买 nike

我想使用 PerformanceCounter 来衡量执行某些操作需要多少时间。

我对 PerformanceCounter 和 C++ 了解不多。我在这里找到了一些代码:

How to use QueryPerformanceCounter?

我得到了奇怪的结果。这是我的尝试:

#include <Windows.h>

// ...

double PCFreq = 0.0;
__int64 CounterStart = 0;

void StartCounter()
{
LARGE_INTEGER li;
if (!QueryPerformanceFrequency(&li))
printf("QueryPerformanceFrequency failed!\n");

PCFreq = double(li.QuadPart) / 1000.0;

//printf("Performance counter resolution: %f", PCFreq);

QueryPerformanceCounter(&li);
CounterStart = li.QuadPart;
}

double GetCounter()
{
LARGE_INTEGER li;
QueryPerformanceCounter(&li);
return double(li.QuadPart - CounterStart) / PCFreq;
}

int main(int argc, const char** argv) {
while (true) {
StartCounter();
Sleep(1000); // just a test
printf("Query frame: %d\n", GetCounter());

// ...
}
}

这是我用负数得出的奇怪结果:

enter image description here

我的代码有什么问题?

最佳答案

您将 double 打印为 float ,使用 %f:

printf("Query frame: %f\n", GetCounter());

关于c++ - QueryPerformanceCounter 和奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31326115/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com