推荐使用std::chrono库进行高精度计时,1.通过high_resolution_clock获取时间点,2.用duration_cast转换微秒或毫秒,3.可封装Timer类实现RAII自动计时,跨平台且精度高。
在C++中,想要精确测量程序运行时间,尤其是毫秒或微秒级别的高精度计时,推荐使用 std::chrono 库。它是C++11引入的现代化时间处理工具,支持高分辨率时钟,适用于性能分析、算法耗时测试等场景。
下面是一个完整的高精度计时器示例,可测量代码段的执行时间(单位:毫秒、微秒):
#include#include int main() { // 记录开始时间 auto start = std::chrono::high_resolution_clock::now();
// --- 在此处插入需要计时的代码 --- for (int i = 0; i zuojiankuohaophpcn 1000000; ++i) { // 模拟一些计算 } // ---------------------------------- // 记录结束时间 auto end = std::chrono::high_resolution_clock::now(); // 计算耗时(微秒) auto duration = std::chrono::duration_castzuojiankuohaophpcnstd::chrono::microsecondsyoujiankuohaophpcn(end - start); std::cout zuojiankuohaophpcnzuojiankuohaophpcn "耗时: " zuojiankuohaophpcnzuojiankuohaophpcn duration.count() zuojiankuohaophpcnzuojiankuohaophpcn " 微秒" zuojiankuohaophpcnzuojiankuohaophpcn std::endl; // 也可转换为毫秒 auto milliseconds = std::chrono::duration_castzuojiankuohaophpcnstd::chrono::millisecondsyoujiankuohaophpcn(duration); std::cout zuojiankuohaophpcnzuojiankuohaophpcn "耗时: " zuojiankuohaophpcnzuojiankuohaophpcn milliseconds.count() zuojiankuohaophpcnzuojiankuohaophpcn " 毫秒" zuojiankuohaophpcnzuojiankuohaophpcn std::endl; return 0;
}
常用时间单位转换说明
std::chrono 支持多种时间精度转换,常用的有:
- nanoseconds:纳秒
- microseconds:微秒(常用)
- milliseconds:毫秒(最直观)
- seconds:秒
通过 duration_cast 可以自由转换时间间隔类型。
封装成简易计时类(实用技巧)
为了方便重复使用,可以将计时功能封装成一个简单的 RAII 类,在构造和析构时自动记录时间:
#include#include class Timer { public: Timer() { start = std::chrono::high_resolution_clock::now(); }
~Timer() { auto end = std::chrono::high_resolution_clock::now(); auto duration = std::chrono::duration_castzuojiankuohaophpcnstd::chrono::microsecondsyoujiankuohaophpcn(end - start); std::cout zuojiankuohaophpcnzuojiankuohaophpcn "函数耗时: " zuojiankuohaophpcnzuojiankuohaophpcn duration.count() zuojiankuohaophpcnzuojiankuohaophpcn " 微秒" zuojiankuohaophpcnzuojiankuohaophpcn std::endl; }private: std::chrono::high_resolution_clock::time_point start; };
// 使用示例 void testFunction() { Timer timer; // 构造即开始计时 for (int i = 0; i
int main() { testFunction(); return 0; }
基本上就这些。std::chrono 是目前C++中最推荐的高精度计时方式,跨平台且无需依赖第三方库。只要编译器支持C++11以上标准,就能稳定使用。注意避免使用老旧的 clock() 函数,它精度低且行为受系统影响大。
# 工具 # ai # c++ # ios # stream # for # 封装 # int # void # private # 算法 # 推荐使用 # 计时器 # 是一个 # 尤其是 # 就能 # 适用于 # 执行时间 # 它是 # 也可 # 第三方
相关文章: 制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣? 已有域名和空间如何搭建网站? html制作网站的步骤有哪些,iapp如何添加网页? 企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目? 天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗? 深圳 网站制作,深圳招聘网站哪个比较好一点啊? 青岛网站设计制作公司,查询青岛招聘信息的网站有哪些? 如何快速搭建响应式可视化网站? 网站制作员失业,怎样查看自己网站的注册者? 制作网站的过程怎么写,用凡科建站如何制作自己的网站? 如何在香港免费服务器上快速搭建网站? 临沂网站制作企业,临沂第三中学官方网站? 建站之星伪静态规则如何正确配置? 子杰智能建站系统|零代码开发与AI生成SEO优化指南 网站制作需要会哪些技术,建立一个网站要花费多少? 如何在IIS中配置站点IP、端口及主机头? 学校为何禁止电信移动建设网站? 如何选择香港主机高效搭建外贸独立站? 合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台? 建站主机选择指南:服务器配置与SEO优化实战技巧 如何选择靠谱的建站公司加盟品牌? 建站之星多图banner生成与模板自定义指南 定制建站哪家更专业可靠?推荐榜单揭晓 建站之星安装失败:服务器环境不兼容? 如何在云主机上快速搭建网站? 如何通过VPS建站实现广告与增值服务盈利? 制作网站外包平台,自动化接单网站有哪些? 建站主机如何选?高性价比方案全解析 建站之星安全性能如何?防护体系能否抵御黑客入侵? 如何批量查询域名的建站时间记录? 如何做网站制作流程,*游戏网站怎么搭建? 沈阳制作网站公司排名,沈阳装饰协会官方网站? 如何通过二级域名建站提升品牌影响力? 建站之星下载版如何获取与安装? ,想在网上投简历,哪几个网站比较好? 如何在VPS电脑上快速搭建网站? 阿里云高弹*务器配置方案|支持分布式架构与多节点部署 建站之星安装提示数据库无法连接如何解决? 制作网站的软件免费下载,免费制作app哪个平台好? 建站之星体验版:智能建站系统+响应式设计,多端适配快速建站 浅谈Javascript中的Label语句 可靠的网站设计制作软件,做网站设计需要什么样的电脑配置? 制作农业网站的软件,比较好的农业网站推荐一下? 如何通过IIS搭建网站并配置访问权限? 如何用AWS免费套餐快速搭建高效网站? 山东云建站价格为何差异显著? 家具网站制作软件,家具厂怎么跑业务? 如何用低价快速搭建高质量网站? 教学论文网站制作软件有哪些,写论文用什么软件 ? 公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
*请认真填写需求信息,我们会在24小时内与您取得联系。