std::chrono
提供了几个时钟来测量时间。同时,我猜测计算机评估时间的唯一方式就是通过计数周期。
问题1:除了计数周期之外,CPU或GPU还有其他评估时间的方式吗?
如果是这种情况,因为计算机计数周期的方式永远不会像原子钟那样精确,这意味着对于计算机时钟和GPS等其他设备的时间测量,在长期内可能会存在“秒”(period = std::ratio<1>
)比实际秒更短或更长的情况。
问题2:这个说法正确吗?
一些硬件拥有不同的频率(例如空闲模式和Turbo模式)。在这种情况下,意味着在一秒钟内,周期数会发生变化。
问题3:CPU和GPU测量的“周期计数”是否取决于硬件频率?如果是,那么std::chrono
如何处理?如果不是,一个周期代表什么(例如什么是“基本”时间)?是否可以在编译时访问转换?是否可以在运行时访问转换?