ev-spdlog-chrono-stopwatch-001¶
| 字段 | 值 |
|---|---|
| 项目 | gabime/spdlog |
| 固定 commit | 79524ddd08a4 |
| 路径 | include/spdlog/stopwatch.h |
| 行段 | L30-L44 |
| 特性 | std::chrono |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-11-03 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 steady_clock 和 duration
为什么典型¶
计时需要单调时钟,steady_clock 不受系统时间调整影响;elapsed 返回 duration
摘录¶
class stopwatch {
using clock = std::chrono::steady_clock;
std::chrono::time_point<clock> start_tp_;
public:
stopwatch()
: start_tp_{clock::now()} {}
std::chrono::duration<double> elapsed() const {
return std::chrono::duration<double>(clock::now() - start_tp_);
}
std::chrono::milliseconds elapsed_ms() const {
return std::chrono::duration_cast<std::chrono::milliseconds>(clock::now() - start_tp_);
}
备注¶
生产头文件;两个接口分别展示 duration 的隐式单位转换和 duration_cast 的显式截断,是 chrono 单位模型的最小完整示例。