为什么C中的运行时是如此随机?

时间:2014-07-27 19:53:19

标签: python c

我有这个代码在python中运行:

from time import time
a=0
c=time()
for x in xrange(10**3):
    print x
print time()-c

符文时间是我的预期。

0.508999824524
0.263000011444
0.25200009346
0.25200009346

由于程序缓存在内核上,python的运行时间减半了?我想是吗?

但它在C上随意。

#include <stdio.h>
#include <time.h>

int main(){
    int a=0;
    clock_t tic= clock();
    for (a=0;a<1000;a++){
        printf("%d",a);
    }
    clock_t tac= clock();
    printf("%f",(double)(tac-tic)/1000000);
}

2 个答案:

答案 0 :(得分:1)

时钟返回的值是进程消耗的CPU时间量的近似值。 这不是您拨打电话的确切时间,但它只是从调度程序中获取了一些变量。

使用clock_gettime(CLOCK_MONOTONIC, ...)获得准确的数字。

答案 1 :(得分:0)

你在循环中使用了一个缓慢且不一致的函数printf()。比较完全无效。时钟也不准确到超过一毫秒(通常比那更差)。