假设我需要读取二进制文件(500兆字节),因此,我只是通过将其读入位数组来加载该文件。之后,我想逐个阅读(一点一点)。所以,我可以阅读"变量" (通过索引)数组或通过"指针读取值#34; (前提是我知道数组第一个元素的指针地址)。那么,在这种情况下哪个会最快?
除了将文件加载到bitarray或任何其他数组以获得更好的性能外,您还有其他任何建议来加载文件以读取位吗?
答案 0 :(得分:1)
它们实际上是相同的,它与“优化”无关。
对于标准数组myArray
,请执行以下操作:
myArray[2]
定义等同于:
*(&myArray[0] + 2)
和(由于数组名称衰减):
*(myArray + 2)
所以,两者都不会“更快”。在这两种情况下,编译器都会生成代表程序语义的最快代码。
一般情况下,测量表示性能差异,然后才决定照顾这样的细节。