性能比较整数多维数组与结构数组

时间:2011-01-27 16:09:07

标签: c++ struct multidimensional-array performance

如果只有一种数据类型,多维数组是否比结构数组更好? 例如,数组是:

struct data{
    short datapointa;
    short datapointb;
    short datapointc;
}

优于

short data[100][100][100][100];

如果有多种数据类型,几个数组会比struct数组好吗?

2 个答案:

答案 0 :(得分:2)

1,测量它

2,您需要查看编译器实际生成的代码,然后考虑缓存大小和内核数量等内容。

3,然后测量它

在测量速度是否有问题以及速度是否存在差异之前,对微观优化的思考很少。

答案 1 :(得分:1)

主要取决于您的访问模式。您应该选择哪种数据结构为您提供最佳的访问位置 - 理想情况下,您应该连续访问内存,以便充分利用缓存并最大限度地减少内存总线流量。显然,这将取决于您使用这些数据结构的算法类型以及在某种程度上如何实现这些算法。