Code: [show] | [select all]
Code: [show] | [select all]
1. 用哪个时钟?high_resolution_clock 如其名,高精度时钟,不过还有一个版本:system_clock 系统时钟,是应该使用高精度时钟还是系统时钟呢?high_resolution_clock 提供了所有系统上的一致性表现,然而需要硬件和操作系统能有这个能力,在某些苛刻的平台上会 fail,比如某些早期的 arm;system_clock 一般应该总是可用,它根据是操作系统的能力判断。
2. 用 v1 还是 v2?你可以从 v2 版的 getTime 看到,模板参数是 double,可以知道内部进行高浮点数运算;v1 版的是整数运算,时钟每次 tick 一下计数器增加一个单位,因为实际上的计算机处理器,根本就不存在浮点数,只有整数。因为 v2 版的浮点数运算需要浪费一定的时间,所以 v2 版的 getTime 没有 v1 版的 getTime 那么准确。getTime 是用来得到当前程序运行时间的,然而它自己如果浪费了 “多那么一点点” 的时间的话,就不够精确了。你可以自己去测试这一点,进行百万级复杂度的计算,然后分别用 getTime_v1 和 getTime_v2 去测量时间,v2 就是比 v1 多出那么一点点的时间。
Code: [show] | [select all]