首页 > 解决方案 > 循环索引计数器是否存储在缓存中?

问题描述

因此,我一直在思考和阅读有关 CPU 缓存优化的信息(特别是在类似 MIPS R4000 的 CPU 上),并且想知道 for-loopi变量是否存储在缓存中,以及这是否会对 for-loop 中的哪些数据进行缓存产生影响.

假设我有一个包含我想要循环的数据的数组。数据紧凑,应该很好地利用 CPU 缓存。这两种循环数据的方式会有区别吗?

  1. 使用i索引计数器进行循环
  2. null作为数组中的最后一项终止

假设 32 位;这是否意味着在情况 1 中我将在缓存上少用 4 个字节,因为它被索引计数器占用了?或者计数器是否会被放入寄存器或其他东西中?

我对这种优化主题相对较新且未受过教育,我想编译器的不同优化设置也会对此产生影响。我很想知道是否有人对此有任何信息,或者可以指出我可以阅读的资源来回答我的问题。

谢谢,

标签: cfor-loopcachingoptimizationcpu

解决方案


推荐阅读