[c++]计时方法——std::chrono

计时的作用:测试某一段代码的运行时间,时间越短,则性能相对越高。

C++11 标准的”最佳计时方法“的代码:

#include <chrono>   
using namespace std;
using namespace chrono;

auto start = system_clock::now();
// do something...
auto end   = system_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout <<  "Spent" << double(duration.count()) * microseconds::period::num / microseconds::period::den << " seconds." << endl;

此方法可以精确到微妙,如花费了0.123456秒

  •     关键词 auto 是一个“自动类型”,auto可以接受任何类型
  •     我们获得时间点主要是通过clock时钟获得的。一共有三个时钟,其中system_clock 是 C++11 提供的一个 clock。(除此之外,还有两个clock:steady_clock 和 high_resolution_clock)
  •     now( ) 表示计时的那一时刻
  •     duration_cast< > 表示类型转换
  •     microseconds 表示微秒。另外的五种时间单位:hours, minutes, seconds, milliseconds, nanoseconds
  •     num 和 den分别表示分子(numerator)和分母(denominator)。在上面的代码中,num=1, den=1,000,000
  •     count( ) 用来返回时间

C++11的 #include< chrono >和传统的 #include < ctime >相比,代码量较多,但是精度也更高。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值