C++ 高精度ms计时器
时间: 2024-12-21 07:28:07 浏览: 18
在C++中,想要创建一个高精度的毫秒级计时器,可以结合`<chrono>`库中的`high_resolution_clock`和`steady_clock`。`high_resolution_clock`用于得到操作系统支持的最高分辨率的时间点,而`steady_clock`提供了一个稳定的、独立于CPU频率变化的计时源。
下面是一个示例,展示了如何使用这两个时钟来测量时间差并换算成毫秒:
```cpp
#include <chrono>
#include <iostream>
using namespace std::chrono;
int64_t high_res_start = std::chrono::high_resolution_clock::now().time_since_epoch().count();
int64_t steady_start = std::chrono::steady_clock::now().time_since_epoch().count();
// 执行你需要计时的操作...
// ...
int64_t high_res_end = std::chrono::high_resolution_clock::now().time_since_epoch().count();
int64_t steady_end = std::chrono::steady_clock::now().time_since_epoch().count();
// 计算时间差
auto high_res_delta = high_res_end - high_res_start;
auto steady_delta = steady_end - steady_start;
// 将纳秒转为毫秒
auto high_res_ms = duration_cast<milliseconds>(high_res_delta).count();
auto steady_ms = duration_cast<milliseconds>(steady_delta).count();
std::cout << "High Resolution Time Elapsed (ms): " << high_res_ms << "\n";
std::cout << "Steady Clock Time Elapsed (ms): " << steady_ms << "\n";
阅读全文