什么更有效率?8个数组int8 myArrayx[100]
,还是一个多维的int8 myArray[8][100]
?我正在为 Microchip PIC 微控制器使用 CCS 编译器,我需要尽可能快地在缓冲区中写入,这就是我提出问题的原因。
问问题
583 次
3 回答
6
我不得不认为多维数组会更快。您有更好的机会(可能保证?)将这些数组放置在连续空间中的内存中,而您不能确定 8 个单独的数组在内存中是否会“靠近”在一起——这会损害您的参考位置。
于 2011-11-02T15:14:35.377 回答
3
这取决于您最常访问哪些项目。但很可能这并不重要。唯一的区别是底层内存映射分配。
于 2011-11-02T15:07:05.987 回答
3
取决于数组的分配方式。如果在堆上,则为单个 multidim。由于引用的局部性,数组对于许多目的会更快,并且您可以一次性分配数组,这更简单并且产生的开销更少。
如果在堆栈 或 上static
,则生成的实际二进制代码可能完全相同。
(我不确定你的设备中是否真的有一个堆,但我想我还是会提到它;)
于 2011-11-02T15:07:34.083 回答