c - 循环索引计数器是否存储在缓存中?
问题描述
因此,我一直在思考和阅读有关 CPU 缓存优化的信息(特别是在类似 MIPS R4000 的 CPU 上),并且想知道 for-loopi
变量是否存储在缓存中,以及这是否会对 for-loop 中的哪些数据进行缓存产生影响.
假设我有一个包含我想要循环的数据的数组。数据紧凑,应该很好地利用 CPU 缓存。这两种循环数据的方式会有区别吗?
- 使用
i
索引计数器进行循环 null
作为数组中的最后一项终止
假设 32 位;这是否意味着在情况 1 中我将在缓存上少用 4 个字节,因为它被索引计数器占用了?或者计数器是否会被放入寄存器或其他东西中?
我对这种优化主题相对较新且未受过教育,我想编译器的不同优化设置也会对此产生影响。我很想知道是否有人对此有任何信息,或者可以指出我可以阅读的资源来回答我的问题。
谢谢,
解决方案
推荐阅读
- react-native - SWIFT_VERSION '5.0' 不受支持,支持的版本有:3.0、4.0、4.2。(在目标“SwiftyJSON”中)
- python - 如何比较预测频率数据与实际频率数据?
- php - 编辑 FTP 文件夹上的 XML 文件
- angularjs - 如何在 md-option 中添加 md-icon?
- r - 如何用曲线图显示不同时间的频率
- javascript - o数据服务调用序列
- ruby-on-rails - 在 Ruby on Rails 中从多对多关系解析数据
- powershell - 将具有今天日期的目录中的文件复制到另一个位置
- java - 如何运行 Spring RMI 服务器?
- visual-studio - 开发适用于 Windows 和 Mac 版本的 Visual Studio 扩展