clock()只返回0

问题描述 投票:0回答:1

The C `clock()` function just returns a zero

clock() function always returning 0

why C clock() returns 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

c++ linux g++ clock
1个回答
1
投票

clock()函数是使用的CPU时间的粗略度量。您的代码没有使用足够的CPU时间来测量这种粗略的度量。你可能应该改用像getrusage这样的东西。

© www.soinside.com 2019 - 2024. All rights reserved.