物理结构很大程度上决定了程序对内存和缓存的使用效率。
计算机的存储主要分为三种:缓存、内存、硬盘。


数据从硬盘中读取到内存,然后被供给CPU使用,由于CPU读取内存需要时间,因此它会智能地预测将要访问的数据提前读读取到缓存中。

综合速度、成本、容量三个方面,硬盘适合长期存储大量数组,内存用于存储当前运行程序中的数据,缓存用于存储经常访问的数据。
内存效率
内存效率主要受容量和碎片化两部分影响:数据结构越省空间效率越高;连续存储优于非连续存储。
缓存效率
缓存效率主要受CPU的数据预取机制影响:
- 缓存行:缓存不是单个字节地存储和加载数据,而是基于缓存行。
- 预取机制:处理器根据顺序访问或固定步长等策略进行数据预加载。
- 空间局部性:一个数据被访问,它附近的数据大概率也被访问。
- 时间局部性:一个被访问的数据可能被再次访问。