是否可以测量 std::clock()
调用的分辨率?或者这是一个无法观察而不影响的问题?
我写了以下简单的基准测试:
#include <ctime>
#include <iostream>
int main() {
std::clock_t initial = std::clock();
std::clock_t current;
while (initial == (current = std::clock()));
std::cout << "Initial: " << initial << std::endl;
std::cout << "Current: " << current << std::endl;
std::cout << "Precision: " << (static_cast<double>(current - initial) / CLOCKS_PER_SEC) << "s" << std::endl;
}
我已经运行它几百次了,它总是输出 0.01s
。
我的问题是:
- 上面的代码是测量
clock()
分辨率的好方法吗? - 如果不是,那么它有什么问题?如何改进?
最佳答案
你可以,有点。像你正在做的事情是一个很好的开始
近似。但我不确定它有多大用处:它决定了
分辨率,但它仍然没有告诉你任何关于准确性的信息;
例如,在 Windows 下,clock
非常不准确以致于无法呈现它
无用。
关于c++ - 测量 `std::clock()`的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080014/