我已阅读此blog,我仍然不确定地方的重要性。为什么局部性对缓存性能很重要?是因为它导致更少的缓存未命中?此外,如何编写程序以获得良好的局部性并因此获得良好的缓存性能?
答案 0 :(得分:1)
缓存比它们所关联的主要内存更小,通常 更小。例如,在x86芯片上,L1缓存通常为32 KiB,而32 GiB或更大的内存大小是常见的,超过一百万倍。
如果没有空间局部性,内存请求将统一分布在应用程序的内存中,然后在内存大小和缓存大小之间给出非常大的比率,在缓存中命中的可能性将是微观的(大约百万分之一)对于上面的例子)。因此缓存命中率将是微观的,缓存将是无用的。