c - 在 C 中测量时间

标签 c time matrix multiplication

我正在尝试测量 C 中的一些事件(矩阵乘法)并注意到我应该做这样的事情:

clock_t start = clock();
sleep(3);
clock_t end = clock();
double elapsed_time = (end - start)/(double)CLOCKS_PER_SEC;
printf("Elapsed time: %.2f.\n", elapsed_time);

输出是:

Elapsed time: 0.00.

为什么会这样?

最佳答案

clock 估计程序使用的 CPU 时间;那是 CPU 一直忙于执行属于您的程序的指令的时间。 sleep 不执行任何工作,因此它不会占用明显的 CPU 时间(即使它需要挂钟时间)。

如果你想测量挂钟时间,使用time:

time_t start = time(NULL);
sleep(3);
printf("%.2f\n", (double)(time(NULL) - start));

将打印出接近三的数字。

关于c - 在 C 中测量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13156031/

相关文章:

javascript - 将相机 W.R.T 3d 对象放置在 Three.js 中

java - 具有列表列表的 Floyd-Warshall 算法实现

c - 如何根据它们的差异是否最接近给定数字来选择两个数字?

python - time.clock() 在 Python 中多次?

c - 如何取消定义库函数以使用我们的相同函数版本

c++ - 为 CUDA 编程计算设备和主机的执行时间

go - 如何使用特定时区解析时间

r - 从计数创建和矩阵

c - 按值传递-不按我想要的方式执行

c - 如何分配1位值?