c - 尝试测量 C 中函数的执行时间时得到 0

标签 c execution-time

我有一个简单的函数,它接受随机单词并使用插入排序算法将它们按字典顺序排列。我对函数没有问题(它有效,经过测试),但是当我尝试使用两个不同的时钟测量函数的执行时间时( ) 值,我在函数执行前后得到相同的值,所以它显示 0 作为耗时

                clock_t t1 = clock();
                InsertionSort(data, n);
                clock_t t2 = clock();

                /*
                * Display the results.
                */

                for (size = i, i = 0; i < size; ++i)
                {
                    printf("data[%d] = \"%s\"\n", (int)i, data[i]);
                }

                /*
                * Display the execution time
                */
                printf("The time taken is.. %g ", (t2 -t1));

最佳答案

时间差太小,无法通过该方法测量,无需添加更多代码执行。 – 风向标

通常,您会想出一种方法来测量您想要计时的大量循环。 10、100、1000,无论产生什么显着的结果。还要记住,在多任务操作系统上,每次迭代花费的时间略有不同,因此您还将建立一个典型的平均值。结果也可能受到处理器缓存和/或文件缓存的影响。 – 风向标

关于c - 尝试测量 C 中函数的执行时间时得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211791/

相关文章:

c - 逗号运算符 , 的作用是什么?

mysql - 如何限制MySQL的执行时间?

mysql - 根据记录数计算Mysql查询的执行时间

python - 检查执行时间的实用程序?

c - 下面哪一段代码执行速度更快?

java - 相同的程序,相同的 JVM,但在不同机器上的内存需求和执行时间却大不相同——为什么?

c - 用于内核开发的 LInux 与 BSD

c - 在嵌入式编程中,我们在处理虚拟地址和物理地址吗?

c - 定义此C宏的正确方法是什么?

c - 纯 c 支持/util 库