我需要更好的解决方案来获得C语言中的执行程序时间

时间:2011-03-12 19:22:13

标签: c time

我正在使用此

 clock_t start = clock();

    QuickSort(0, ItemCount-1,1);

 printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);

我想在纳秒内得到时间。

2 个答案:

答案 0 :(得分:0)

如果您使用的是类Unix系统,则很可能使用clock_gettime()功能。在Linux中,它可以在-lrt中找到,我尝试过的大多数其他系统都在系统C库中使用它。

应该注意的是x86的rdtsc指令非常精确。

答案 1 :(得分:0)

使用struct timespec如下获取以纳秒精度执行代码的时间

struct timespec start, end;
clock_gettime(CLOCK_REALTIME,&start);
/* Do something */
clock_gettime(CLOCK_REALTIME,&end);

它返回一个值((((unsigned64)start.tv_sec) * ((unsigned64)(1000000000L))) + ((unsigned64)(start.tv_nsec))))

希望这个答案对您在纳秒内获得所需的执行时间更有帮助。