このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
メモリ使用量
生成した C/C++ コードが使用する RAM、ROM およびスタック領域の削減
生成されたコードでのメモリ使用量を削減するための、MATLAB® コードの変更方法を決定します。関数を呼び出すとき、入力と出力で同じ変数を使用することで、データの渡し方を制御します。参照渡しによって、生成されたコードで使用されるメモリが削減されます。スタック領域の使用量に対して制限を設定し、動的メモリ割り当てを使用するタイミングを指定することで、メモリの割り当て方法を制御します。追加のコードを生成する機能 (整数オーバーフローのサポートなど) を無効にすることで、コードのサイズを最小化します。
特定の条件に合わせたコードの最適化方法の詳細については、最適化手法を参照してください。
関数
coder.inline | 生成されたコードで特定の関数のインライン化を制御 |
coder.const | 生成コードでの定数への式の畳み込み |
coder.ceval | 外部 C/C++ 関数の呼び出し |
クラス
coder.Constant | コード生成用の定数値の指定 |
coder.ExternalDependency | 外部コードへのインターフェイス |
トピック
生成コードの最適化
- 最適化手法
生成されたコードの実行速度またはメモリ使用量を最適化します。 - スタックの割り当てとパフォーマンス
スタック領域が制限されている場合は、ヒープに大きい変数を割り当てます。 - 生成コードの MATLAB Coder の最適化
生成コードのパフォーマンスを改善するには、コード ジェネレーターで最適化を使用します。
条件付きステートメント
- 未使用の実行パスのコード生成を防ぐ方法
制御フロー変数を定数にして、未使用の分岐のコードの生成を防ぎます。 - 生成コードからの未使用パスの除外
制御フロー変数を定数にして、未使用の分岐のコード生成を防ぎます。
関数呼び出し
- 生成されたコードでの関数入力のデータ コピーの回避
入力引数を参照渡しで渡すコードを生成する。 - 生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御
インライン化によって関数呼び出しのオーバーヘッドは排除されますが、大きい C/C++ コードが生成され、コードの可読性が低下する可能性があります。 - スタック領域使用量の制御
生成コードで使用できる最大スタック領域を指定します。 - 関数呼び出しの定数への畳み込み
生成コードで式を定数に置き換えて実行時間を短縮します。
配列
- 動的メモリ割り当てしきい値の設定
特定のサイズより小さい配列の動的メモリ割り当てを無効にします。 - 大きな配列と構造体の再利用
変数の再利用を指定してメモリ使用量を削減する。 - スパース行列のコード生成
コード生成用の MATLAB コードでのスパース行列の使用
数値的なエッジ ケース
- 整数オーバーフローまたは非有限のサポートの無効化
整数オーバーフローまたは非有限を処理するサポート コードの生成を抑制してパフォーマンスを改善します。
カスタム コードの統合
- 外部コードまたはカスタム コードの統合
独自に最適化したコードを統合してパフォーマンスを改善します。 - 高速フーリエ変換関数の生成コードの最適化
ワークフローおよびターゲット ハードウェアに応じた正しい高速フーリエ変換の実装を選択する。 - 生成されたスタンドアロン コードでの LAPACK 呼び出しを使用した線形代数の高速化
特定の線形代数関数に対して LAPACK 呼び出しを生成する。使用する LAPACK ライブラリを指定する。 - 生成されたスタンドアロン コードでの BLAS 呼び出しを使用した行列演算の高速化
特定の低水準行列演算の BLAS 呼び出しを生成します。使用する BLAS ライブラリを指定します。 - 生成されたスタンドアロン コードでの FFTW ライブラリ呼び出しを使用した高速フーリエ変換の高速化
高速フーリエ変換のための FFTW ライブラリ呼び出しを生成する。FFTW ライブラリを指定する。