我刚刚偶然发现了关于缓存算法的this blog post。
作者展示了两个代码示例,它们循环遍历一个矩形并计算一些东西(我猜计算代码只是一个占位符)。
在其中一个示例中,他垂直扫描矩形,而在另一个示例中水平扫描矩形。然后他说第二个是最快的,每个程序员都应该知道为什么。现在我一定不是一个程序员,因为对我来说它看起来完全一样。
有人能解释一下为什么前者更快吗?
发布于 2009-06-15 17:04:51
高速缓存一致性。当您水平扫描时,您的数据将在内存中更接近,因此您将有更少的缓存未命中,因此性能将更快。对于一个足够小的矩形,这并不重要。
https://stackoverflow.com/questions/997212
复制相似问题