The C `clock()` function just returns a zero
clock() function always returning 0
我查阅了所有这些问题和答案
我了解到clock()返回每个系统的每个常量的时钟周期
time()返回秒数。
首先,我试图使用clock()测量我的排序算法的执行时间,如下所示:
#include <iostream>
#include <ctime>
... Some other headers and codes
a = clock();
exchange_sort();
a = clock() - a;
... Rest of the code
我尝试了许多不同的数据类型,如int,clock_t,long,float。我已经按照已增加的顺序对一个相当大的数组int arr[1000]
进行了排序。但a
的值总是0,所以我试图找到使用gdb的原因,并设置了一个断点到排序算法所在的行,这样我就可以检查a = clock();
的值,并且必须有一些数字在变量,但只有0。
所以在那之后,我试着检查函数本身是否是问题或者其他类似的东西:
#include <iostream>
#include <iostream>
int main()
{
int a;
clock_t b;
float c;
long d;
a = clock();
b = clock();
c = clock();
d = clock();
return 0;
}
我通过gdb检查了每个变量的值,并且在我输入clock()
的返回值之前只有垃圾数字但是在我放入之后变量中只有0。显然clock()
在我的结论中一直只返回0
我真的不知道如何解决这个问题
我的g ++版本是4.4.7。我在Linux中运行它我的处理器是x86_64-redhat-linux
clock()
函数是使用的CPU时间的粗略度量。您的代码没有使用足够的CPU时间来测量这种粗略的度量。你可能应该改用像getrusage
这样的东西。