Main Content

動的メモリ割り当てしきい値の設定

この例では、可変サイズ配列の動的メモリ割り当てしきい値を指定する方法を示します。動的メモリ割り当てにより、可変サイズ配列のストレージ要件は最適化されますが、生成コードの実行は遅くなります。すべての可変サイズ配列の動的メモリ割り当てを無効にする代わりに、特定のサイズよりも小さい配列の動的メモリ割り当てを無効にすることができます。

次の場合にこのしきい値を指定します。

  • 小さい配列の動的メモリ割り当てを無効にする。小さい配列では、静的メモリ割り当てによって生成コードの速度が向上する場合があります。静的メモリ割り当てによって未使用のストレージ領域ができる可能性があります。ただし、未使用のストレージ領域は、小さい配列の場合はそれほど大きな考慮事項ではないと判断できます。

  • 大きい配列の動的メモリ割り当てを有効にする。大きな配列では、動的メモリ割り当ての使用によってストレージ要件を大幅に減らすことができます。

MATLAB Coder アプリを使用した動的メモリ割り当てしきい値の設定

  1. [生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。

  2. [詳細設定] をクリックします。

  3. [メモリ] タブで、[動的メモリ割り当てを有効化] を選択します。

  4. [動的メモリ割り当てしきい値] を必要な値に設定します。

    [動的メモリ割り当てしきい値] の値はバイト単位で測定されます。ターゲット ハードウェア設定の情報に基づいて、DynamicMemoryAllocationThreshold の特定の値で対応可能な配列のサイズが推測されます。この推測では、レジスタに変数を配置するなど、可能な C コンパイラの最適化を除外します。

コマンド ラインでの動的メモリ割り当てしきい値の設定

  1. コード生成の構成オブジェクトを作成します。coder.config を、引数 'lib''dll' または 'exe' を (要件に応じて) 指定して使用します。次に例を示します。

    cfg = coder.config('lib');
  2. EnableDynamicMemoryAllocationtrue に設定します。

    cfg.EnableDynamicMemoryAllocation=true;
  3. DynamicMemoryAllocationThreshold プロパティを必要な値に設定します。

    cfg.DynamicMemoryAllocationThreshold = 40000;

    DynamicMemoryAllocationThreshold に格納される値はバイト単位で測定されます。ターゲット ハードウェア設定の情報に基づいて、DynamicMemoryAllocationThreshold の特定の値で対応可能な配列のサイズが推測されます。この推測では、レジスタに変数を配置するなど、可能な C コンパイラの最適化を除外します。

関連する例

詳細