我已经读了这个博客,我仍然不确定地方性的重要性。为什么局部性对缓存性能很重要?是因为它导致更少的缓存未命中吗?此外,如何编写程序以实现良好的局部性,从而获得良好的缓存性能?
缓存比它们关联的主存储器小得多,通常要小得多。例如,在 x86 芯片上,L1 缓存通常为 32 KiB,而 32 GiB 或更大的内存大小很常见,这比 100 多万倍
。如果没有空间局部性,内存请求将均匀分布在应用程序的内存中,然后给定内存大小和缓存大小之间的非常大的比率,在缓存中命中的机会将是微小的(对于上面的示例,大约是百万分之一)。因此,缓存命中率将是微观的,缓存将毫无用处。