スタックの割り当てとパフォーマンス
既定の設定では、ローカル変数はスタックに割り当てられます。大きくてスタックに収まらない変数は、メモリに静的に割り当てられます。
スタックの割り当てには通常、静的な割り当てよりも効率的なメモリが使用されます。ただし、スタック領域は、通常は組み込みプロセッサでは制限されることがあります。MATLAB® Coder™ を使用して、ターゲット ハードウェアに対して生成コードが適切になるようにスタック領域使用量の制限を手作業で設定できます。ターゲット ハードウェアの構成に基づいて、この制限を選択できます。詳細は、スタック領域使用量の制御を参照してください。
制限されたスタック領域では、静的な割り当てを使用するのではなく、ヒープに大きな変数を割り当てる選択をすることができます。ヒープへの割り当てによって処理速度は遅くなりますが、静的割り当てよりもメモリ効率が向上します。ヒープに大きな変数を割り当てるには、次のいずれかを実行します。
コマンド ラインからのヒープ領域の割り当て
構成オブジェクトを作成します。
MultiInstanceCode
プロパティをtrue
に設定します。cfg = coder.config('exe'); cfg.MultiInstanceCode = true;
この構成オブジェクトを使用してコードを生成します。
MATLAB Coder アプリを使用したヒープ領域の割り当て
MATLAB Coder アプリを使用して、[プロジェクトの設定] ダイアログ ボックスの [メモリ] タブで、[再呼び出し可能なコードを生成] チェック ボックスを選択します。
コードを生成します。