主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

パフォーマンス

メモリ使用量の削減,生成されたコードの実行速度の向上

コードの生成元となる仿金宝app真软件®モデルを開発する場合は,モデルコンフィギュレーションパラメーターを使用して,RAMと罗の消費量を減らし,コードの実行速度を向上させます。効率性の一部を犠牲にしてより防御的なコードにする場合は,これらのパラメーターの1つ以上を無効にできます。

メモリの使用量または実行速度の改善が必要なターゲットハードウェアおよびコードセクションのリアルタイム要件を,生成されたコードが満たしているかどうかを確認する,コード実行プロファイリングを構成できます。また,コード生成アドバイザーを使用すると,モデルの現在のコンフィギュレーションがデバッグやコード実行に最適化されているかどうかを確認できます。

金宝app仿真软件コンフィギュレーションパラメーター

トピック

コード最適化の基礎

コード生成速度の向上

モデルを変更してコードジェネレーターによるコード生成速度を上げます。

最適化のツールおよび手法

モデルアドバイザーなどのツールおよびテクニックを適用してコード生成のためにモデルを最適化する。

コンパイラの最適化の制御

makefileのコンパイラの最適化を仿真金宝app软件UIレベルで制御します。

防御的プログラミング

非正規数の実行速度

非正規数計算のレイテンシのために実行に時間がかかったり,オーバーランする可能性を最小化します。

範囲外の値をラップする浮動小数点から整数への変換コードを削除

アプリケーションにおける入力値が出力型の範囲にある場合,範囲外の浮動小数点から整数への変換コードを削除します。

南を整数0にマッピングするコードの削除

アプリケーションにの入力値が存在しない場合,を整数ゼロにマッピングするコードをコードジェネレーターで削除するように指定します。

非有限数のチェックまたは数学関数のインライン化の無効化

コード置換ライブラリ(CRL)カスタマイズエントリを使用して、数学関数の非有限数のチェックおよび数学関数のインライン化を選択的に無効化できます。

データコピー削減

ブロック出力時の中間結果の計算と保存の最小化

コードジェネレーターは,モデル内の個々のブロックに対して別々のコードステートメントとストレージ宣言を生成する代わりに,ブロック演算を単一の式に畳み込みます。

式の畳み込み

式の畳み込みでは,コードを最適化して,ブロック出力での中間結果の計算や,そのような中間結果の一時的なバッファーや変数への保存を最小にします。

生成されたコードにおけるローカルブロック出力の有効化と再利用

可能な場合,コードジェネレーターは,ブロック出力をローカル変数として宣言し,これらの変数を再利用できるようにします。

バス信号の効率的なコードの生成

生成されたコードの効率性を最大化するためにバスをモデル化する。

インライン不変信号

生成されたコード内でシンボリック名ではなく不変信号の数値を使用します。

関数memcpyを使用したベクトルの代入に対する生成コードの最適化

コードジェネレーターは,ループを関数memcpyの呼び出しで置き換え,ベクトルの代入に対して生成されたコードを最適化します。

バス信号の効率的なコードの生成

生成されたコードの効率性を最大化するためにバスをモデル化する。

メモリ使用的量

ベクトル演算の最適化

コードジェネレーターは,一時ローカル配列をローカル変数に置き換えることで,スタックメモリを削減します。

布尔変数およびステートコンフィギュレーション変数に関するメモリ使用量の削減

ステートコンフィギュレーション変数と布尔変数を保存するメモリ量を削減します。

関数memsetを使用した生成コードの最適化

関数memsetは,型にかかわらず内部ストレージを整数ビットパターン0(つまり,全ビットがオフ)にクリアします。

スタック領域の割り当てのカスタマイズ

スタックの最大許容サイズを制御し,生成されたコードでデータをローカルとグローバルのどちらで定義するのかに関する一部の制御を提供します。

ループ展開のしきい値の構成

既定値の5からスタートし,コードジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために,個別のステートメントではなくループの使用を開始します。

組み込みアプリケーションの単精度データ型の指定

たとえば,単精度プロセッサをターゲットとするなど,浮動小数点データ型が単精度のみのコードを生成します。

ブロックパラメーターのデータ型を指定した効率的なコードの生成

さらに効率的なコードを生成するには,パラメーターデータ型と信号のデータ型を一致させるか,パラメーターをさらにサイズが小さいデータ型で格納します。

論理信号の布尔データを使用した生成コードの最適化

コードジェネレーターは,論理信号を布尔データ型として保存し,生成されたコードを最適化します。

時間カウンターのメモリ使用量の最適化

コードジェネレーターが経過時間または絶対時間に割り当てるメモリを最適化します。

実行速度

複数为構の造の組み合わせによる生成コードの最適化

コードジェネレーターはデータの依存関係の解析を使用して,構造を組み合わせて静的なコードサイズとランタイム分岐を削減します。

ループ展開のしきい値の構成

既定値の5からスタートし,コードジェネレーターは信号またはパラメーターの配列の要素に値を割り当てるために,個別のステートメントではなくループの使用を開始します。

生成されたコードからのデッドコードパスの除去

コードジェネレーターはデッド(つまり,未使用)コードパスを生成されたコードから除去します。

勾配設定を補正する浮動小数点の乗算

効率的な乗算をサポートするプロセッサの場合,勾配設定を補正する浮動小数点の乗算を使用して,コードの効率を向上します。

計算結果に影響しないブロックのコードの削除

コードジェネレーターは,計算結果に影響しないコードを削除することで,実行速度を改善して罗の消費を低減します。

ブロックパラメーターの数値のインライン化

ブロックパラメーターのリテラル数値をインライン化し,グローバルRAM使用量を軽減します。

金宝app仿真软件®,Stateflow®およびMATLAB®の固定小数点データを使用した生成コードの最適化

金宝app仿真软件,Stateflow®およびMATLAB®に固定小数点コードを生成します。

アルゴリズムコード内でのターゲット最適化の生成

生成されたアルゴリズムコードをターゲット固有の最適化でカスタマイズします。

条件付き入力分岐実行の使用

开关ブロックと多端口切换ブロックでは,金宝app仿真软件は制御入力と制御入力によって選択されたデータ入力を計算するブロックのみを実行します。

生成されたコードの複素数信号に対する最適化

コードジェネレーターは,生成されたコードで信号を表す構造体に対し,さまざまな最適化を実行します。

MATLAB函数ブロックからの生成コード内の線形代数の高速化

MATLAB函数ブロックで特定の線形代数関数に対してLAPACK呼び出しを生成する。使用するLAPACKライブラリを指定する。

MATLAB函数ブロックからの生成コード内の行列演算の高速化

特定の低水準行列演算の巴拉斯呼び出しを生成します。使用する巴拉斯ライブラリを指定します。

MATLAB函数ブロックからの生成コード内の高速フーリエ変換の高速化

MATLAB函数ブロックの高速フーリエ変換に対するFFTWライブラリ呼び出しを生成する。FFTWライブラリを指定する。

MATLAB函数ブロックからの生成コード内のマルチスレッドFFTW計画の同期

FFTライブラリコールバッククラスのメソッドを実装し,サポートCコードを提供してFFTW計画への同時アクセスを行わないようにする。

MATLAB函数ブロック内の可変サイズ配列に対するメモリ割り当ての制御

MATLAB函数ブロックの動的メモリ割り当てを無効にする,または動的メモリ割り当てのしきい値を指定する。

コード実行のプロファイル

生成コードのプロファイリングの実行

コード実行プロファイリングを使用して,コードの実行速度を観察します。