一、前言
在我们写程序过程中,有时候需要测试我们的程序语句执行时间的耗时,当前也是有很多的库提供我们去使用,一直没有良好的跨平台的库可以提供出来;而且一般这种代码也是由我们程序员自己调用系统的库来进行,但是往往会出现精度不足和不支持跨平台等问题;
他来了。。。他来了。。。他踩着七彩祥云来了;“他”就是C++11中引进boost中的chrono库;他可实现高精度时钟,可以做到纳秒级;
二、chrono库
在C++11中,是标准模板库中与时间有关的头文件。该头文件中所有函数与类模板均定义在std::chrono命名空间中;
这里主要介绍时间点和时钟两个点:
一般计时器就是从某个时间点开始,然后到某个时间点之间的计数,就是我们一般称之为耗时;
✁ 时间点:
template <class Clock, class Duration = typename Clock::duration>
class time_point;
std::chrono::time_point 表示一个具体时间
第一个模板参数Clock用来指定所要使用的时钟,在标准库中有三种时钟,分别为:
● system_clock:当前系统范围(即对各进程都一致)的一个实时的日历时钟(wallclock)
● steady_clock:当前系统实现的一个维定时钟,该时钟的每个时间嘀嗒单位是均匀的(即长度相等)。