固定サイズの配列に対するメモリ割り当ての制御
固定サイズの配列に対する動的メモリ割り当てでは、プログラム スタックにメモリを割り当てるのではなく、ヒープで配列のメモリを割り当てます。次のような場合、動的メモリ割り当ての使用を検討してください。
固定サイズの配列のサイズが大きく、スタックでメモリを割り当てたくない。
ターゲット ハードウェアのメモリが限られているため、プログラム スタックで配列のメモリを割り当てたくない。
大きな配列では、ストレージ要件を大幅に減らすことができます。動的メモリ割り当てによって、生成されたコードの実行速度が遅くなる場合があります。
すべての固定サイズの配列に対して動的メモリ割り当てを有効にする
既定では、固定サイズの配列に対する動的メモリ割り当ては無効になっています。有効にするには、次を行います。
コード生成の構成オブジェクトで、
DynamicMemoryAllocationForFixedSizeArraysパラメーターを'Always'に設定します。あるいは、アプリの [メモリ設定] で、[固定サイズの配列に対する動的メモリ割り当て] を
'Always'に設定します。
コード ジェネレーターは、ヒープのメモリをサイズが 64 バイトを超えるすべての可変サイズ配列に動的に割り当てます。
しきい値よりも大きい配列に対して動的メモリ割り当てを有効にする
固定サイズの配列をすべてヒープで動的に割り当てる代わりに、これを超えるとメモリが動的に割り当てられるというしきい値を指定できます。コード ジェネレーターに、サイズがしきい値以上の固定サイズの配列に対して動的メモリ割り当てを使用するよう指示するには、次を行います。
構成オブジェクトで、
DynamicMemoryAllocationForFixedSizeArraysを'Threshold'に設定します。MATLAB Coder アプリの [メモリ設定] で、[固定サイズの配列に対する動的メモリ割り当て] を
For arrays with max size at or above thresholdに設定します。
参考
coder.EmbeddedCodeConfig (MATLAB Coder) | coder.MexCodeConfig (MATLAB Coder) | coder.CodeConfig (MATLAB Coder)
トピック
- 可変サイズの配列に対するメモリ割り当ての制御 (MATLAB Coder)
- 生成されたコード内の配列の表現 (MATLAB Coder)
- 生成される関数インターフェイスでの動的に割り当てられる C 配列の使用 (MATLAB Coder)
- 生成された関数インターフェイスでの動的に割り当てられた C++ 配列の使用 (MATLAB Coder)