物理结构很大程度上决定了程序对内存和缓存的使用效率。

计算机的存储主要分为三种:缓存、内存、硬盘。

image-20260609165154681

image-20260609165109115

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

image-20260609165311817

综合速度、成本、容量三个方面,硬盘适合长期存储大量数组,内存用于存储当前运行程序中的数据,缓存用于存储经常访问的数据。

内存效率

内存效率主要受容量和碎片化两部分影响:数据结构越省空间效率越高;连续存储优于非连续存储。

缓存效率

缓存效率主要受CPU的数据预取机制影响:

  • 缓存行:缓存不是单个字节地存储和加载数据,而是基于缓存行。
  • 预取机制:处理器根据顺序访问或固定步长等策略进行数据预加载。
  • 空间局部性:一个数据被访问,它附近的数据大概率也被访问。
  • 时间局部性:一个被访问的数据可能被再次访问。