《表1 不同数据规模的缓存未命中次数》
图1显示,在维度为104*104的矩阵上,程序1和程序2执行时间相差10倍之多。表1的数据表明,在数据规模比较大的情况下,程序2缓存未命中的次数几乎是程序1的10倍,但是不是1000或者更多,因为数据很大,缓存空间并不足以存下一行。值得一提的是,实验证明,在10*10这种很小的数据量的情况下,两个程序的运行效率完全是一样的。因为替换策略,主存地址连续的几组数据被放置在缓存中不同的地址上,而不是放在相同的地址中,从而避免了数据的覆盖。即使编译器开启最高级别的优化,两者性能的差距依旧不会缩短,编译器对此无能为力。足以见得,正确的访问顺序可以大大提高我们的程序效率。
图表编号 | XD00100572300 严禁用于非法目的 |
---|---|
绘制时间 | 2019.10.01 |
作者 | 王舒心、贺细平 |
绘制单位 | 湖南农业大学信息科学技术学院、湖南农业大学信息科学技术学院 |
更多格式 | 高清、无水印(增值服务) |