Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 测量'std::clock()的分辨率`_C++_Clock - Fatal编程技术网

C++ 测量'std::clock()的分辨率`

C++ 测量'std::clock()的分辨率`,c++,clock,C++,Clock,是否可以测量std::clock()调用的分辨率?或者这是一个不可能在没有影响的情况下进行观察的问题 我编写了以下简单的基准测试: #include <ctime> #include <iostream> int main() { std::clock_t initial = std::clock(); std::clock_t current; while (initial == (current = std::clock())); s

是否可以测量
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;
}
#包括
#包括
int main(){
std::clock_t initial=std::clock();
标准:时钟电流;
而(初始==(当前=标准::时钟());

std::cout你可以,有点。像你正在做的事情是一个好的开始 近似。但我不确定它有多有用:它决定了 分辨率,但它仍然不能告诉你任何关于准确性的信息; 例如,在Windows下,
clock
非常不准确,以至于无法渲染它
无用。

你所说的“准确度”是什么意思?你如何在不参考另一个“正确”时钟的情况下测量它?它是否每次都在第一个循环中中断?@Kerrek SB你在解释我的问题。@James它需要50000-100000次迭代(未优化).你得到的是时钟的分辨率,而不是精度。很明显,时钟一次跳动10毫秒,但我们不知道这是否正确。