《表1 不同数据规模的缓存未命中次数》

《表1 不同数据规模的缓存未命中次数》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《C语言程序中循环结构的性能优化》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

图1显示,在维度为104*104的矩阵上,程序1和程序2执行时间相差10倍之多。表1的数据表明,在数据规模比较大的情况下,程序2缓存未命中的次数几乎是程序1的10倍,但是不是1000或者更多,因为数据很大,缓存空间并不足以存下一行。值得一提的是,实验证明,在10*10这种很小的数据量的情况下,两个程序的运行效率完全是一样的。因为替换策略,主存地址连续的几组数据被放置在缓存中不同的地址上,而不是放在相同的地址中,从而避免了数据的覆盖。即使编译器开启最高级别的优化,两者性能的差距依旧不会缩短,编译器对此无能为力。足以见得,正确的访问顺序可以大大提高我们的程序效率。