パフォ,マンス
メモリ使用量の削減,生成されたコ,ドの実行速度の向上
コ,ドの生成元となるS金宝appimulink®モデルを開発する場合は,モデルコンフィギュレーションパラメーターを使用して,RAMと罗の消費量を減らし,コードの実行速度を向上させます。効率性の一部を犠牲にしてより防御的なコードにする場合は,これらのパラメーターの1つ以上を無効にできます。
メモリの使用量または実行速度の改善が必要なターゲットハードウェアおよびコードセクションのリアルタイム要件を,生成されたコードが満たしているかどうかを確認する,コード実行プロファイリングを構成できます。また,コード生成アドバイザーを使用すると,モデルの現在のコンフィギュレーションがデバッグやコード実行に最適化されているかどうかを確認できます。
トピック
コ,ド最適化の基礎
- コ,ド生成速度の向上
モデルを変更してコ,ドジェネレ,タ,によるコ,ド生成速度を上げます。 - コド効率化ドの最適化
モデルアドバド生成のためにモデルを最適化する。 - コンパ@ @ラの最適化の制御
makefileのコンパaapl . ex金宝appeラの最適化をSimulink UIレベルで制御する。
防御的プログラミング
- 非正規数の実行速度
非正規数計算のレテンシのために実行に時間がかかったり,オバランする可能性を最小化します。 - 範囲外の浮動小数点を整数へ変換するコ,ドの削除
アプリケーションにおける入力値が出力型の範囲にある場合,範囲外の浮動小数点から整数への変換コードを削除します。 - NaNを整数0にマッピングするコ,ドの削除
アプリケ,ションに南
の入力値が存在しない場合,南
を整数ゼロにマッピングするコ,ドをコ,ドジェネレ,タ,で削除するように指定します。 - 非有限数のチェックまたは数学関数の▪▪ンラ▪▪ン化の無効化
コード置換ライブラリ(CRL)カスタマイズエントリを使用して、数学関数の非有限数のチェックおよび数学関数のインライン化を選択的に無効化できます。
デ,タコピ,削減
- ブロック出力時の中間結果の計算と保存の最小化
コードジェネレーターは,モデル内の個々のブロックに対して別々のコードステートメントとストレージ宣言を生成する代わりに,ブロック演算を単一の式に畳み込みます。 - 式の畳み込み
式の畳み込みでは,コードを最適化して,ブロック出力での中間結果の計算や,そのような中間結果の一時的なバッファーや変数への保存を最小にします。 - 生成されたコ,ドにおけるロ,カルブロック出力の有効化と再利用
可能な場合,コードジェネレーターは,ブロック出力をローカル変数として宣言し,これらの変数を再利用できるようにします。 - バス信号の効率的なコ,ドの生成
生成されたコ,ドの効率性を最大化するためにバスをモデル化する。 - ▪▪▪▪ンラ▪▪▪▪ン不変信号
生成されたコ,ド内でシンボリック名ではなく不変信号の数値を使用します。 - 関数memcpyを使用したベクトルの代入に対する生成コ,ドの最適化
コ,ドジェネレ,タ,は,为
ル,プを関数memcpy
の呼び出しで置き換え,ベクトルの代入に対して生成されたコ,ドを最適化します。 - バス信号の効率的なコ,ドの生成
生成されたコ,ドの効率性を最大化するためにバスをモデル化する。
メモリ使用量
- ベクトル演算の最適化
コードジェネレーターは,一時ローカル配列をローカル変数に置き換えることで,スタックメモリを削減します。 - Boolean変数およびステ,トコンフィギュレ,ション変数に関するメモリ使用量の削減
ステ,トコンフィギュレ,ション変数と布尔
変数を保存するメモリ量を削減します。 - 関数memsetを使用した生成コ,ドの最適化
関数memset
は,型にかかわらず内部ストレージを整数ビットパターン0(つまり,全ビットがオフ)にクリアします。 - スタック領域の割り当てのカスタマ@ @ズ
スタックの最大許容サイズを制御し,生成されたコードでデータをローカルとグローバルのどちらで定義するのかに関する一部の制御を提供します。 - ル,プ展開のしきい値の構成
既定値の5からスタートし,コードジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために,個別のステートメントではなく为
ル,プの使用を開始します。 - 組み込みアプリケ,ションの単精度デ,タ型の指定
たとえば,単精度プロセッサをターゲットとするなど,浮動小数点データ型が単精度のみのコードを生成します。 - ブロックパラメ,タ,のデ,タ型を指定した効率的なコ,ドの生成
さらに効率的なコードを生成するには,パラメーターのデータ型と信号のデータ型を一致させるか,パラメーターをさらにサイズが小さいデータ型で格納します。 - 論理信号のBooleanデ,タを使用した生成コ,ドの最適化
コ,ドジェネレ,タ,は,論理信号を布尔
デ,タ型として保存し,生成されたコ,ドを最適化します。 - 時間カウンタ,のメモリ使用量の最適化
コ,ドジェネレ,タ,が経過時間または絶対時間に割り当てるメモリを最適化します。
実行速度
- 複数の为構造の組み合わせによる生成コ,ドの最適化
コ,ドジェネレ,タ,はデ,タの依存関係の解析を使用して,为
構造を組み合わせて静的なコドサズとランタム分岐を削減します。 - ル,プ展開のしきい値の構成
既定値の5からスタートし,コードジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために,個別のステートメントではなく为
ル,プの使用を開始します。 - 生成されたコ,ドからのデッドコ,ドパスの除去
コドジェネレタはデッド(まり,)ドパスを生成されたコドから除去します。 - 勾配設定を補正する浮動小数点の乗算
効率的な乗算をサポートするプロセッサの場合,勾配設定を補正する浮動小数点の乗算を使用して,コードの効率を向上します。 - 計算結果に影響しないブロックのコ,ドの削除
コードジェネレーターは,計算結果に影響しないコードを削除することで,実行速度を改善して罗の消費を低減します。 - ブロックパラメタの数値のンラン化
ブロックパラメタのリテラル数値をンラン化し,グロバルram使用量を軽減します。 - 金宝appMATLAB仿真软件,Stateflowおよびの固定小数点データを使用した生成コードの最適化
金宝appSimulink, Stateflow®およびmatlab®に固定小数点コ,ドを生成します。 - アルゴリズムコ,ド内でのタ,ゲット最適化の生成
生成されたアルゴリズムコドをタゲット固有の最適化でカスタマズします。 - 条件付き入力分岐実行の使用
开关ブロックと多端口切换ブロックでは,金宝app仿真软件は制御入力と制御入力によって選択されたデータ入力を計算するブロックのみを実行します。 - 生成されたコ,ドの複素数信号に対する最適化
コ,ドジェネレ,タ,は,生成されたコ,ドで信号を表す構造体に対し,さまざまな最適化を実行します。 - MATLAB函数ブロックからの生成コ,ド内の線形代数の高速化
MATLAB函数ブロックで特定の線形代数関数に対してLAPACK呼び出しを生成する。使用するlapackラブラリを指定する。 - MATLAB函数ブロックからの生成コ,ド内の行列演算の高速化
特定の低水準行列演算のblas呼び出しを生成します。使用するblasラブラリを指定します。 - MATLAB函数ブロックからの生成コ,ド内の高速フ,リエ変換の高速化
MATLAB函数ブロックの高速フリエ変換に対するFFTWラブラリ呼び出しを生成する。FFTWラブラリを指定する。 - MATLAB函数ブロックからの生成コ,ド内のマルチスレッドFFTW計画の同期
FFTライブラリコールバッククラスのメソッドを実装し,サポートCコードを提供してFFTW計画への同時アクセスを行わないようにする。 - MATLAB函数ブロック内の可変サescズ配列に対するメモリ割り当ての制御
MATLAB函数ブロックの動的メモリ割り当てを無効にする,または動的メモリ割り当てのしきい値を指定する。 - 固定小数点デタを使用した信号処理アルゴリズムの速度とサズの最適化
固定小数点音響ノ▪▪ズキャンセラ▪▪をモデル化する。 - 金宝appSimulinkブロックからのSIMDコ,ドの生成
英特尔®SSEおよびIntel AVXテクノロジ,を使用して生成コ,ドの実行速度を改善する。 - 利用SIMD优化约简运算代码
使用SIMD指令集生成简化操作的优化代码。
コド実行のプロファル
- 生成コドのプロファリングの実行
コド実行プロファリングを使用して,コドの実行速度を観察します。