这是一个经典的缓存问题:如果循环一个足够大的数组,每个内存引用都是一个已经刷新的项,因此需要将该项从RAM中提取到缓存中.在最简单的情况下,您只需访问比缓存大一个字节的数组即可看到这种情况.
即使是复杂的,预测性的提取方案也会受到这个问题的影响.无论缓存方案如何,始终可以设计一个提取模式,该模式将导致每个内存引用上的缓存验证错误.
好消息是现代缓存系统努力减少这种影响.例如,您正在使用的系统可能会在大型数组中进行一些前向提取,因此不会对每次内存访问造成错误.最后,花时间了解缓存系统,也许从您在本科中学习的架构课程中查看笔记:-)将帮助您使用缓存系统.