より効率的なものは何ですか?8 つの配列int8 myArrayx[100]
、または多次元int8 myArray[8][100]
? 私は Microchip PIC マイクロコントローラー用の CCS コンパイラーを使用していますが、バッファーにできるだけ速く書き込む必要があります。それが私の質問の理由です。
3 に答える
6
多次元配列の方が高速だと考えなければなりません。これらの配列を連続した空間のメモリに配置する可能性がはるかに高くなります (おそらく保証されますか?) が、8 つの個々の配列がメモリ内で「接近」することは確実ではなく、参照の局所性が損なわれます。
于 2011-11-02T15:14:35.377 に答える
3
配列の割り当て方法によって異なります。ヒープ上にある場合は、単一の multidim。配列は、参照の局所性により多くの目的で高速になり、配列を一度に割り当てることができます。これはより単純でオーバーヘッドが少なくなります。
スタックまたはstatic
にある場合、生成される実際のバイナリ コードはまったく同じである可能性があります。
(実際にデバイスにヒープがあるかどうかはわかりませんが、とにかく言及したいと思いました;)
于 2011-11-02T15:07:34.083 に答える
3
どの項目に最もアクセスするかによって異なります。しかし、おそらくそれは実際には問題ではありません。唯一の違いは、基になるメモリ マップの割り当てです。
于 2011-11-02T15:07:05.987 に答える