测量' std::clock() '的分辨率
Measuring the resolution of `std::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
是如此不准确,以至于渲染它无用的。
相关文章:
- 使用 SendInput 或 mouse_event 不适用于 clock()?
- 使用分辨率定理用Z3证明
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- Opencv 恢复到比我设置的更高的分辨率
- 在Windows(C++)中使用USB相机拍摄高分辨率照片
- C/C++ 位数组分辨率转换算法
- Windows 和 Linux 之间的相对路径分辨率差异?
- 如何在C++中为高分辨率时钟声明变量?
- 给定数字的浮点分辨率
- 过载分辨率和用户定义的转换
- QScreen geometry()api为分辨率2736 x 1824和2560 x 1600提供了错误的值
- 在没有NtSetTimerResolution的Windows上提高计时器分辨率(高分辨率)
- 获取可能的屏幕分辨率列表
- std::array<const T, n> vs std::array<T, n> 过载分辨率
- 模板转换运算符的分辨率不明确
- 将 X 坐标从一种分辨率转换为另一种分辨率
- 使用 gcc 的模糊函数过载分辨率.为什么?
- caffe 可以一次接收一批具有不同分辨率的输入吗?如果是这样,怎么办?
- 为什么我们可以在 c++ 中使用 srand(clock())?
- 测量' std::clock() '的分辨率