教学内容总结
局部性
一个编写良好的计算机程序倾向于引用邻近于其他最近引用过的数据项,或者最近引用过的数据项本身。有良好局部性的程序比局部性差的程序运行的更快,在硬件层引入高速缓存存储器就体现了局部性原理。
对程序数据引用的局部性
•时间局部性:被引用过一次的存储器位置在未来会被多次引用。
•空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
•一个连续向量中,每隔k个元素进行访问,被称为步长为k的引用模式,具有步长为1的引用模式称为顺序引用模式,随着步长增加空间局部性下降。
•双重嵌套循环按照行优先顺序读取数组元素。
取指令的局部性
•程序指令是存放在存储器中的,CPU读取这些指令的过程中评价一个程序关于取指令的局部性。
•代码区别与程序数据的一个重要属性就是在运行时指令是不能被修改的。
局部性重点
•重复引用同一个变量的程序有良好的时间局部性
•对于具有步长为k的引用模式的程序,步长越小,空间局部性越好。
•对于取指令来说,循环具有良好的时间和空间局部性。循环体越小,迭代次数越多局部性越好。
部分代码截图
本周代码托管截图
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4000行 | 25篇 | 350小时 | |
第一周 | 0/ 0 | 2/2 | 20/30 | |
第二周 | 100/100 | 1/3 | 20/50 | |
第三周 | 300/400 | 1/4 | 20/70 | |
第四周 | 0/400 | 0/4 | 0/70 | |
第五周 | 300/700 | 2/6 | 20/90 | |
第六周 | 100/800 | 2/8 | 20/110 | |
第七周 | 100/900 | 2/10 | 20/130 |