C++ 标准库 Chrono计时

Chrono

C++11提供的程序运行时间相关的库,如果你需要更为精准的时间或者更高的时间获取的调用性能,需要引入平台专门的操作系统库,比如win32 api的高精度计时器QueryPerformaceCounter

头文件

#include <chrono>

使用时间字面量

using namespace std::literals::chrono_literals;
std::this_thread::sleep_for(1s);//1s是c++11新增的时间字面量

代码示例

auto start = std::chrono::high_resolution_clock::now();
std::this_thread::sleep_for(1s);
auto end  = std::chrono::high_resolution_clock::now();

std::chrono::duration<float> duration = end - start;

std::cout << duration.count() << "s " << std::endl;//1.00389s

关于high_resolution_clock

high_resolution_clock 在不同标准库实现之间实现并不一致,尽量不要使用。通常它只是std::chrono::steady_clock 或 std::chrono::system_clock的别名。
例如:对于gcc的libstdc++它是system_clock对于MSVC它是steady_clock,而对于clang的 libc++ 它取决于配置。
它是system_clock时不是单调的(即时间能后退),但具体实现取决于库或配置。
通常应该直接使用 std::chrono::steady_clock 或 std::chrono::system_clock 代替 std::chrono::high_resolution_clock
对时长度量使用 steady_clock ,对壁钟时间使用 system_clock 。

posted @   GameSprite  阅读(521)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示