我发现此代码here。如果我除以(t2-t1)/CLOCK_PER_SEC,我会得到几秒钟的时间吗?我如何找到CLOCK_PER_SEC?有没有更好的方法来查找代码或函数的执行时间?

#include<time.h>
main()
{
    clock_t t1=clock();
    // Your code that takes more than 1 sec;
    clock_t t2=clock();
    printf("The time taken is.. %g ", (t2-t1));
    ..

最佳答案

您可以这样:

#include <sys/time.h>
#include <time.h>

typedef struct timeval wallclock_t;

void wallclock_mark(wallclock_t *const tptr)
{
    gettimeofday(tptr, NULL);
}

double wallclock_since(wallclock_t *const tptr)
{
    struct timeval  now;
    gettimeofday(&now, NULL);

    return difftime(now.tv_sec, tptr->tv_sec)
            + ((double)now.tv_usec - (double)tptr->tv_usec) / 1000000.0;
}

int main(void)
{
    wallclock_t  t;
    double  s;

    wallclock_mark(&t);

    /*
     * Do something
    */

    s = wallclock_since(&t);
    printf("That took %.9f seconds wall clock time.\n", s);
    return 0;
}


您可以在我的Time measurements中阅读更多内容。

07-26 07:53