全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++如何计算程序运行时间_C++高精度计时器实现代码

推荐使用std::chrono库进行高精度计时,1.通过high_resolution_clock获取时间点,2.用duration_cast转换微秒或毫秒,3.可封装Timer类实现RAII自动计时,跨平台且精度高。

在C++中,想要精确测量程序运行时间,尤其是毫秒或微秒级别的高精度计时,推荐使用 std::chrono 库。它是C++11引入的现代化时间处理工具,支持高分辨率时钟,适用于性能分析、算法耗时测试等场景。

使用 std::chrono 实现高精度计时器

下面是一个完整的高精度计时器示例,可测量代码段的执行时间(单位:毫秒、微秒):

#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小时内与您取得联系。