首页 > 解决方案 > 时钟()只返回 0

问题描述

C `clock()` 函数只返回一个零

时钟()函数总是返回 0

为什么C时钟()返回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++linuxg++clock

解决方案


clock()函数是对所用 CPU 时间的粗略测量。您的代码没有使用足够的 CPU 时间来进行如此粗略的测量。您可能应该改用类似的东西getrusage


推荐阅读