问题描述
解决方案
同样的代码,执行过程中计算机可能遇到各种小问题,一般来说短期内第二次运行会快点。
第一次会进行资源的分配,将代码拷到内存里,再执行。
如果在很短的时间内进行第二次运行,代码还在内存里,CPU少了将代码拷到内存的操作,所以会快上一点。
你问的这个问题设计到了操作系统的CPU局部性策略,操作系统在执行程序时,并不是像C一样,顺序执行,因为同一时间,并不是只有你的程序需要CPU的参与,
别的程序也需要,CPU可能在很短的时间内,执行了m次,然后跑去执行别的程序了,再跑回来执行你剩下的代码。
大概是这么个意思,如果不对,请大家轻拍
解决方案二:
clock计时精度不够,所以表现在结果不准确。
主要是这个问题。
另外考虑计算机内的缓存的作用,因为数组是连续存储的,内循环访问最低维下标理论上可以更快一点。但是你现在的问题还是前者。
解决方案三:
简单来说就是你的CPU的运行状况不一样,还有就像楼上所说clock计时的精确度问题!
解决方案四:
简单来说就是你的CPU的运行状况不一样,还有就像楼上所说clock计时的精确度问题!
时间: 2024-11-08 19:21:51