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 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧