Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

コードの実行速度のプロファイリング

生成コードの実行速度をプロファイリングすることで、コードが実行速度要件を満たしているかどうかを検証するのに役立ちます。

アーキテクチャ上の問題が潜んでいる場合には、開発が進んだ段階で対応しようとするとコストが高くなる可能性があるため、プロファイングは開発の初期段階において特に重要です。また、プロファイリングによって、内部ループやインライン コードなど、最適化が必要なボトルネックや手続き上の問題を特定できます。

メモ

Embedded Coder® のライセンスがある場合、ソフトウェアインザループ (SIL) およびプロセッサインザループ (PIL) のシミュレーションに基づくよりシンプルな代替アプローチについては、コード実行のプロファイルを参照してください。

プロファイル フック関数インターフェイスの使用

Target Language Compiler (TLC) フック関数インターフェイスを使用して、コード生成テクノロジーによって生成されたコードをプロファイリングできます。

プロファイル フック関数インターフェイスを使用するには、次の手順に従います。

  1. システム ターゲット ファイルに対して、次のフック関数を定義した TLC ファイルを作成します。プロファイリング コードを指定する関数を記述します。コード ジェネレーターは、モデルの Atomic システム用に生成されたコードにフック関数コードを追加します。

    関数入力引数出力タイプ説明
    ProfilerHeadersvoidヘッダー ファイル名の配列生成されるコードに含めるヘッダー ファイル名の配列を返します。
    ProfilerTypedefsvoidtypedefsプロファイラーの型定義のコード ステートメントを生成します。
    ProfilerGlobalDatasystem指定された system のグローバル データグローバル データを宣言するコード ステートメントを生成します。
    ProfilerExternDataDeclssystemextern 宣言 (指定された引数用) systemグローバル extern 宣言を作成するコード ステートメントを生成します。
    ProfilerSystemDeclssystem, functionType指定された functionType の指定された system の宣言Atomic サブシステム OutputUpdateOutputUpdate または Derivatives の各関数のスコープ内に必要な変数を宣言するコードを生成します。
    ProfilerSystemStartsystem, functionType指定された system および functionType のプロファイラー起動コマンドAtomic サブシステム OutputUpdateOutputUpdate または Derivatives の各関数のスコープ内でプロファイラーを起動するコードを生成します。
    ProfilerSystemFinishsystem, functionType指定された system および functionType のプロファイラー終了コマンドAtomic サブシステムの関数 OutputUpdateOutputUpdate または Derivatives のスコープ内でプロファイラーを停止するコードを生成します。
    ProfilerSystemTerminatesystem指定された system のプロファイラー終了コードAtomic サブシステムのプロファイリングを終了する (および可能であれば結果を表示する) コードを生成します。
  2. target.tlc ファイルで、次のグローバル変数を定義します。

    定義...定義内容...

    ProfileGenCode

    TLC_TRUE または 1 でプロファイリングをオン (TLC_FALSE または 0 でプロファイリングをオフ)

    ProfilerTLC

    ステップ 1 で作成した TLC ファイルの名前

    グローバル変数を定義する簡単な方法は、-a オプションを使用してパラメーターを定義することです。このオプションを適用するには、set_param コマンドを使用してモデル コンフィギュレーション パラメーターの TLCOptions を設定します。次に例を示します。

    >> set_param(gcs,'TLCOptions', ...
         '-aProfileGenCode=1 -aProfilerTLC="rtwdemo_profile_hook.tlc"')
  3. コンフィギュレーション パラメーターを設定して、コード生成レポートを生成することを検討してください。これにより、モデル用に生成されたコードのコンテキストでコードのプロファイルを検証できます。

  4. モデルを作成します。ビルド プロセスは、モデルの生成コードのフック関数がある場所にプロファイリング コードを組み込みます。

  5. 生成された実行可能ファイルを実行します。MATLAB コマンド ウィンドウに !model-name と入力します。作成したプロファイリング TLC ファイルにプログラムしたプロファイリング レポートが確認できます。たとえば、プロファイル レポートには、モデルのそれぞれのシステムに対する呼び出しの数やそれぞれのシステムで消費された CPU サイクル数などをリストできます。

.tlc ファイルのプログラミングおよび TLC コンフィギュレーション変数の詳細については、Target Language Compilerを参照してください。

プロファイル フック関数インターフェイスの制限事項

コードの実行速度のプロファイリングのための TLC フック関数インターフェイスは、S-Function システム ターゲット ファイル (rtwsfcn.tlc) をサポートしません。

関連するトピック