我有这个代码在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);
}
答案 0 :(得分:1)
时钟返回的值是进程消耗的CPU时间量的近似值。 这不是您拨打电话的确切时间,但它只是从调度程序中获取了一些变量。
使用clock_gettime(CLOCK_MONOTONIC, ...)
获得准确的数字。
答案 1 :(得分:0)
你在循环中使用了一个缓慢且不一致的函数printf()。比较完全无效。时钟也不准确到超过一毫秒(通常比那更差)。