私はCでマイクロコントローラ用のFFTアルゴリズムを研究しており、入力データの実数部と虚数部を単なる構造体の配列に格納するか、構造体の配列へのポインタを使用するかどうかを決定するのに問題があります。私は、コードがわずかなメモリ量で実行されなければならず、しかも可能な限り速くなければならないという矛盾する要件に直面しています。私は、構造体へのポインタの配列が若干大きくメモリのオーバーヘッドを持っていると考えているが、私のコードの行は、次のように基本的にあります:構造体へのポインタの配列を使用するか、構造体の配列のみを使用しますか?
for (uint8_t i = 0; i < RECORD_SIZE; i++)
{
uint8_t decimateValue = fft_decimate(i);
fftData[i]->realPart = fftTempData[decimateValue]->realPart;
fftData[i]->imPart = fftTempData[decimateValue]->imPart;
}
私のように、私はポインタの配列を使用する場合、構造体することを考えています上記の例では、構造体の配列の実装のように、実際には2つのデータ構造間のすべてのデータを実際にコピーするのではなく、コンパイルされたコードがポインタを再整理するだけで高速になります。上記のコードセクションができるだけ速く実行されるならば、私はいくつかの余分なメモリを犠牲にするつもりです。アドバイスありがとう。
コードの両方のバージョンを実行して、どちらが高速であるのを確認してみませんか? –