Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经阅读了这个博客,但我仍然不确定位置的重要性。为什么局部性对缓存性能很重要?是因为它导致更少的缓存未命中吗?此外,如何编写程序以实现良好的局部性并因此获得良好的缓存性能?
缓存比它们关联的主存储器更小,而且通常要小得多。例如,在 x86 芯片上,L1 缓存通常为 32 KiB,而 32 GiB 或更大的内存大小很常见,超过一百万倍。
如果没有空间局部性,内存请求将均匀分布在应用程序的内存中,然后考虑到内存大小和缓存大小之间的非常大的比率,缓存命中的机会将是微观的(例如大约百万分之一)以上)。所以缓存命中率是微观的,缓存是无用的。