是否可以衡量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()
?答案 0 :(得分:2)
你可以,有点儿。像你正在做的事情是一个很好的第一次
近似。但我不确定它是多么有用:它决定了
分辨率,但它仍然没有告诉你有关准确性的任何信息;
例如,在Windows下,clock
是如此不准确以呈现它
无用。