c++使用std::chrono计算任务的执行时间

通过指定std::chrono::duration_cast的模板参数来设定精度,该函数的第一个模板参数指定转换后的duration精度,后两个模板参数直接由实参类型自动推导出。

其中所谓的精度影响的是std::chrono::duration的成员函数count()的返回值类型与返回值,最终duration所代表的时间段长度为 c o u n t ( ) × 单 位 时 间 count()×单位时间 count()× .

常用精度:

std::chrono::duration_cast<std::chrono::nanoseconds>  //纳秒
std::chrono::duration_cast<std::chrono::microseconds> //微秒
std::chrono::duration_cast<std::chrono::milliseconds> //毫秒
std::chrono::duration_cast<std::chrono::seconds>      //秒

或使用如下的模板参数指定转换精度为 X Y \frac{X}{Y} YX 秒:

std::chrono::duration<std::intmax_t, std::ratio<X, Y>>

下面的代码实现了对某任务的计时并输出毫秒数:

#include <chrono>
#include <iostream>

int main()
{
    auto t0 = std::chrono::steady_clock::now();

    // Task to do

    std::cout << std::chrono::duration_cast<std::chrono::milliseconds>
    			(std::chrono::steady_clock::now() - t0).count()
              << '\n';
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值