C++实现高精度计时器
时间: 2024-04-06 08:25:28 浏览: 99
C++ 计时器
5星 · 资源好评率100%
以下是一个C++实现高精度计时器的示例代码:
```cpp
#include <iostream>
#include <windows.h>
class TimerCounter {
private:
LARGE_INTEGER startTime;
LARGE_INTEGER stopTime;
double dbTime;
public:
void Start() {
QueryPerformanceCounter(&startTime);
}
void Stop() {
QueryPerformanceCounter(&stopTime);
dbTime = (double)(stopTime.QuadPart - startTime.QuadPart) / (double)GetFrequency();
}
double GetTime() {
return dbTime;
}
private:
long long GetFrequency() {
LARGE_INTEGER frequency;
QueryPerformanceFrequency(&frequency);
return frequency.QuadPart; }
};
int main() {
TimerCounter tc;
tc.Start();
Sleep(100);
tc.Stop();
std::cout << "耗时: " << tc.GetTime() * 1000 << "ms" << std::endl;
return 0;
}
```
这个示例代码中,我们使用了Windows API中的`QueryPerformanceCounter`和`QueryPerformanceFrequency`函数来获取高精度的计时器值。`Start`函数用于开始计时,`Stop`函数用于停止计时并计算耗时,`GetTime`函数用于获取耗时的值。在`main`函数中,我们创建了一个`TimerCounter`对象,调用`Start`函数开始计时,然后使用`Sleep`函数模拟一段耗时操作,最后调用`Stop`函数停止计时并输出耗时的值。
阅读全文