Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 缓存位置与写入的相关性如何?_Optimization - Fatal编程技术网

Optimization 缓存位置与写入的相关性如何?

Optimization 缓存位置与写入的相关性如何?,optimization,Optimization,假设: (1) 在一个大的字数组中写入的程序。 (2) 该数组适合内存页。 (3) 控制回路的编写方式有利于分支预测。(4) 该程序在面向台式机的大规模市场CPU上运行(即通用体系结构) 问题: (1) 空间距离对书写很重要吗? (2) 靠近写的地方读会更有效吗?反之亦然 (1) 空间距离对书写很重要吗 很有可能,是的。通常,对于写操作,CPU必须获取整个缓存线(与读取相同),然后修改缓存线的一小部分 另外,不要忘记,通常会进行某种“虚拟地址->物理地址”转换,这些转换可能会被缓存(例如,使用T

假设: (1) 在一个大的字数组中写入的程序。 (2) 该数组适合内存页。 (3) 控制回路的编写方式有利于分支预测。(4) 该程序在面向台式机的大规模市场CPU上运行(即通用体系结构)

问题: (1) 空间距离对书写很重要吗? (2) 靠近写的地方读会更有效吗?反之亦然

(1) 空间距离对书写很重要吗

很有可能,是的。通常,对于写操作,CPU必须获取整个缓存线(与读取相同),然后修改缓存线的一小部分

另外,不要忘记,通常会进行某种“虚拟地址->物理地址”转换,这些转换可能会被缓存(例如,使用TLB/翻译查找缓冲区),并且对同一页面的后续访问(任何类型-读或写)会回收先前获取的翻译

(2) 靠近写的地方读会更有效吗?反之亦然

很有可能,是的。原因同上