C/C++编程笔记:C++计时器讲解!详细知识点带你学会

一、前言

在我们写程序过程中,有时候需要测试我们的程序语句执行时间的耗时,当前也是有很多的库提供我们去使用,一直没有良好的跨平台的库可以提供出来;而且一般这种代码也是由我们程序员自己调用系统的库来进行,但是往往会出现精度不足和不支持跨平台等问题;

他来了。。。他来了。。,他踩着七彩祥云来了;“他”就是C++11中引进boost中的chrono库;他可实现高精度时钟,可以做到纳秒级;

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

 

二、chrono库

在C++11中,是标准模板库中与时间有关的头文件。该头文件中所有函数与类模板均定义在std::chrono命名空间中;

这里主要介绍时间点和时钟两个点:

一般计时器就是从某个时间点开始,然后到某个时间点之间的计数,就是我们一般称之为耗时;

时间点:

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

 

std::chrono::time_point 表示一个具体时间

第一个模板参数Clock用来指定所要使用的时钟,在标准库中有三种时钟,分别为:

(1)system_clock:当前系统范围(即对各进程都一致)的一个实时的日历时钟(wallclock)

(2)steady_clock:当前系统实现的一个维定时钟,该时钟的每个时间嘀嗒单位是均匀的(即长度相等)。

(3)high_resolution_clock:当前系统实现的一个高分辨率时钟。

第二个模板函数参数用来表示时间的计量单位(特化的std::chrono::duration<> )

时间点都有一个时间戳,即时间原点。chrono库中采用的是Unix的时间戳1970年1月1日 00:00。所以time_point也就是距离时间戳(epoch)的时间长度(duration)。

三、实践

知道了这些,我们去实现一下开始说的高精度计时器:

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

 

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

 

测试:

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

 

结果:

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

 

类似这种比较高精度的测试,我们可以使用在我们项目代码中进行使用,可以计算出我们程序的耗时,可以进行优化;

你学废了吗?

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子,QQ群1090842465点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

编程学习视频分享:

C/C++编程笔记:C++计时器讲解!详细知识点带你学会

上一篇:判断当前页面有没有被用户浏览?


下一篇:Linux,网络编程接口记录