访问更快的数组 - "指针引用"或者只是访问数组"变量(索引)"?

时间:2015-08-08 12:34:44

标签: c++ visual-studio-2012

假设我需要读取二进制文件(500兆字节),因此,我只是通过将其读入位数组来加载该文件。之后,我想逐个阅读(一点一点)。所以,我可以阅读"变量" (通过索引)数组或通过"指针读取值#34; (前提是我知道数组第一个元素的指针地址)。那么,在这种情况下哪个会最快?

除了将文件加载到bitarray或任何其他数组以获得更好的性能外,您还有其他任何建议来加载文件以读取位吗?

1 个答案:

答案 0 :(得分:1)

它们实际上是相同的,它与“优化”无关。

对于标准数组myArray,请执行以下操作:

myArray[2]

定义等同于:

*(&myArray[0] + 2)

和(由于数组名称衰减):

*(myArray + 2)

所以,两者都不会“更快”。在这两种情况下,编译器都会生成代表程序语义的最快代码。

一般情况下,测量表示性能差异,然后才决定照顾这样的细节。