我可能被迫编写一些性能关键的C / C ++代码,涉及多个输入数组和一个结果数组(更不用说确切的类型)。出于某些原因,我想在我的输出数组的小块上工作,根据输入修改它们 - 但是不经常读取并将它们写回内存,因为我不信任缓存(即,我担心输入数组会覆盖它,而我最终会实际进行内存读写,这是可怕的......)所以,我正在考虑安全地玩它并试着继续寄存器。
答案 0 :(得分:0)
一般来说,没有。大多数CPU架构都没有提供任何索引寄存器的方法,因此无法将数据作为数组访问。 (例如,在ARM上,有r1
到r15
的寄存器,但无法通过其编号直接访问寄存器。这同样适用于x86。)
您对缓存驱逐的担忧可能是错误的。现代CPU架构通常非常擅长管理缓存。