相关问题: 这个
我正在使用一个空间网格,它可能会变大(10^6 个节点)甚至更大。我将定期执行置换操作(例如从一个节点到另一个节点的粒子)。我不是信息学专家,但我开始理解缓存行和空间局部性的概念,虽然还不是很好。所以,我在徘徊是否更喜欢使用二维数组(如果是的话,哪个?我现在更愿意避免提升,但也许我稍后会链接它)并索引位移,例如像这样:
数组[i][j] -> 数组[i-1][j+2]
或者,对于一维数组,如果 NX 是“等效”列数:
数组[i*NX+j] -> 数组[(i-1)*NX+j+2]
知道每次迭代将完成近一百万次,也有近一百万次迭代。