2 y786168557 y786168557 于 2015.06.22 17:45 提问

c语言计时函数返回时间不定,求详解为什么(只点击了两次运行,并未改变代码)

图片说明

代码如上,
结果如下:
第一次图片说明
第二次:图片说明

4个回答

hwhaocool
hwhaocool   2015.06.22 19:39
已采纳

同样的代码,执行过程中计算机可能遇到各种小问题,一般来说短期内第二次运行会快点。

第一次会进行资源的分配,将代码拷到内存里,再执行。

如果在很短的时间内进行第二次运行,代码还在内存里,CPU少了将代码拷到内存的操作,所以会快上一点。

你问的这个问题设计到了操作系统的CPU局部性策略,操作系统在执行程序时,并不是像C一样,顺序执行,因为同一时间,并不是只有你的程序需要CPU的参与,
别的程序也需要,CPU可能在很短的时间内,执行了m次,然后跑去执行别的程序了,再跑回来执行你剩下的代码。

大概是这么个意思,如果不对,请大家轻拍

caozhy
caozhy   Ds   Rxr 2015.06.22 21:49

clock计时精度不够,所以表现在结果不准确。
主要是这个问题。
另外考虑计算机内的缓存的作用,因为数组是连续存储的,内循环访问最低维下标理论上可以更快一点。但是你现在的问题还是前者。

u010655288
u010655288   2015.06.23 14:52

简单来说就是你的CPU的运行状况不一样,还有就像楼上所说clock计时的精确度问题!

u010655288
u010655288   2015.06.23 14:53

简单来说就是你的CPU的运行状况不一样,还有就像楼上所说clock计时的精确度问题!

Csdn user default icon
上传中...
上传图片
插入图片