时钟的说明:
- system_clock:从系统获取的时钟;
- steady_clock:不能被修改的时钟;
- high_resolution_clock:高精度时钟,实际上是system_clock或者steady_clock的别名。
steady_clock
可以获取稳定可靠的时间间隔,后一次调用now()的值和前一次的差值是不因为修改了系统时间而改变,它保证了稳定的时间间隔。
除了表示时间片段,有时候我们可能更想知道一个具体的时间点,这里就要提一下time_point
,time_point
表示的是:
- 用来获取1970.1.1以来的秒数和当前的时间
- 可以做一些时间的比较和算术运算
- 可以和ctime库结合起来显示时间
看一下类的声明:
|
这里本来应该是有三种clock
的,也就是
- system_clock
- steady_clock
- high_resolution_clock
但是从这里的定义来看,难道有的平台没有steady_clock
?并且high_resolution_clock
的定义是随着_LIBCPP_HAS_NO_MONOTONIC_CLOCK
。这里的意思是说,
- 如果没有单调的时钟,那么就需要自己定义一个
steady_clock
。 - 如果有,就不用定义了,直接用
system_clock
。
获取一段代码的运行时间
|
system_clock
|
时间的加减
|
定时器
|
自定义定时器
|