【发布时间】:2021-10-18 13:12:48
【问题描述】:
一些示例代码:
clock_t clock_start = clock();
for( ... ) { ... do stuff ... }
clock_t clock_stop = clock();
double duration = 1000.0 * (clock_stop - clock_start) / CLOCKS_PER_SEC;
printf("time: %f ms\n", duration);
当我运行这段代码时,它产生了以下输出:
time: 4756.869000 ms
这显然是错误的。我估计实际花费的时间约为 10 秒,并通过秒表验证了这一点。
似乎缺少大约 2 - 3 个因素。
CLOCKS_PER_SEC 是否可能在我的系统上被定义为无意义的东西? (我使用的是带有 Raspberry Pi OS 的 Raspberry Pi 3。)有什么方法可以检查吗?还是更有可能是其他原因导致了问题。
我知道在 posix 系统上测量时间的替代方法。无论如何,我将使用其中一个作为可能的替代方案来实施一些测试。
【问题讨论】:
-
"一些示例代码:"请把它变成minimal reproducible example。
-
@Yunnosch A MWE 在这里显然是无关紧要的,而且提供也不可能或不切实际。
标签: c time raspberry-pi