c++ - 测量 `std::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()));
    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/

相关文章:

linux - Linux 中的时钟源

python - 为什么Python的时间函数(如perf_counter_ns)解析会不一致?

c++ - 关闭 OpenMP

c++ - boost Asio : Catching signals without keeping an otherwise finished io_service running

c++ - 如何检测异常何时发生?

c - Clock_gettime() 调用是原子的吗?

c++ - 对内存分配和构造函数的调用是否可以与执行 "new"表达式所需的其他操作交错?

c++ - 错误 C2011 : 'MSXML2::IXMLDOMImplementation' : 'struct' type redefinition

javascript - 时钟在不同时区javascript显示相同时间

JavaScript:多时区时钟