メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コード プロファイル アナライザー

生成コードの実行時間とスタック使用量のプロファイルを解析

R2023a 以降

説明

生成コードのソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) の実行によって生成される実行時間とスタック使用量のプロファイルを解析するには、コード プロファイル アナライザーを使用します。

  • タスクと関数の実行時間を確認し、特定のシミュレーション時間における関数呼び出しスタックを可視化し、異なる実行の実行時間を比較する。

  • タスクと関数のスタック使用量を確認し、異なる実行の値を比較する。

Embedded Coder® を使用している場合は、以下も可能です。

  • XCP ベースのエクスターナル モード シミュレーションによって生成される実行時間プロファイルを解析する。

  • モデルの階層構造のコード プロファイリングを構成する。

  • 生成コードのパフォーマンスのホットスポットを特定して解析する。このワークフローでは coder.profile.test.runTests 関数を使用します。

  • 生成コードのクリティカル パスを特定して解析する。このワークフローでは coder.profile.test.analyzePath 関数を使用します。

Code Profile Analyzer app

コード プロファイル アナライザー アプリを開く

Simulink® モデルのコードを生成する場合は、[SIL/PIL] タブをクリックします。[結果] ギャラリーの [実行プロファイリングの結果] または [スタック プロファイリングの結果][コード プロファイル アナライザー] ボタンをクリックします。

MATLAB® コードのコードを生成する場合は、コマンド ウィンドウで SIL/PIL の実行を終了します。コード ジェネレーターにより、実行プロファイリング レポートまたはスタック プロファイリング レポートへのリンクを含むメッセージがコマンド ウィンドウに出力されます。そのリンクをクリックします。

あるいは、Simulink と MATLAB のどちらのコード生成でも、SIL/PIL の実行の終了後に coder.profile.show または coder.profile.show(profileVariable) を入力してコマンド ウィンドウからコード プロファイル アナライザーを開きます。

Simulink コード生成の場合、profileVariable[ワークスペース変数] (CodeExecutionProfileVariable) または [スタック ワークスペース変数] (CodeStackProfileVariable) コンフィギュレーション パラメーターで指定するワークスペース変数です。

MATLAB コード生成の場合は、getCoderExecutionProfile 関数または getCoderStackProfile 関数を使用して profileVariable を取得します。

すべて展開する

このワークフローでは、コード プロファイル アナライザーで実行時間メトリクスを解析するときに使用できる手順を示します。

  1. コード プロファイル アナライザーを開きます。

  2. [インポート] セクションの [結果のインポート] ドロップダウン リストから、実行時間の測定値を含む [時間プロファイリング] ワークスペース変数を選択します。

  3. [設定] セクションで次の値を指定します。

    • 時間単位 — 表示される時間測定値の単位

    • 1 秒あたりのタイマー刻み数 (MHz) — タイマーのカウントが 1 秒に達するまでの刻みまたはサイクルの数。タイマー ソースがメイン CPU クロックの場合、この値は CPU 周波数です。

  4. 実行時間の解析を実行するには、[解析] セクションで次のボタンのいずれかをクリックします。

    • タスクの実行 — タスクの実行時間を解析します。

    • タスク検証 — 生成されたタスクの CPU へのマッピングを検証します。

    • 関数の実行 — タスクと関数の実行時間を解析します。

    • 関数呼び出しスタック — 特定のシミュレーション時間における関数呼び出しスタックを可視化します。

    • 比較 — 2 つのシミュレーションの実行時間を比較します。

  5. コード セクション (タスクまたは関数) を選択し、[結果] セクションで次のボタンのいずれかをクリックします。

    • ソースの強調表示 — Simulink モデルでコード セクションに関連するブロックを示します。

    • コードの強調表示 — 生成コードでコード セクションの呼び出しを示します。

    • 分布の生成 — コード セクションの実行時間の分布を表示します。

    • 関数の分布 — 生成コードにおける呼び出す側と呼び出される側の関数の相対的な実行時間を示す円グラフを表示します。

    • SDI にエクスポート — 測定された実行時間をシミュレーション データ インスペクターで表示します。

  6. シミュレーション全体について、[結果] セクションを使用して以下を行います。

    • プロファイリングの強調表示 — プロファイリングされたモデル コンポーネントに色を付けます。

    • レポートを開く — コード実行プロファイリング レポートを開きます。

    • スケジュールの生成 — タスク スケジューリングを可視化します。

詳細については、以下を参照してください。

このワークフローでは、コード プロファイル アナライザーでスタック使用量メトリクスを解析するときに使用できる手順を示します。

  1. コード プロファイル アナライザーを開きます。

  2. [インポート] セクションの [結果のインポート] ドロップダウン リストから、スタック使用量の測定値を含む [メモリ プロファイリング] ワークスペース変数を選択します。

  3. スタック使用量の解析を実行するには、[解析] セクションで次のボタンのいずれかをクリックします。

    • スタック メモリ — タスクと関数のスタック使用量を解析します。

    • 比較 — 2 つのシミュレーションのスタック使用量の測定値を比較します。

  4. コード セクション (タスクまたは関数) を選択し、[結果] セクションで次のボタンのいずれかをクリックします。

    • コードの強調表示 — 生成コードでコード セクションの呼び出しを示します。

    • 分布の生成 — コード セクションの実行メモリの分布を表示します。

    • SDI にエクスポート — スタック使用量の値をシミュレーション データ インスペクターで表示します。

  5. シミュレーション全体について、[結果] セクションを使用して以下を行います。

    • モデルを開く — ソース モデルを開きます。

    • レポートを開く — コード スタック プロファイリング レポートを開きます。

詳細については、View and Compare Stack Usage Metricsを参照してください。

モデルの階層構造のコード プロファイリングを構成するには、以下を行います。

  1. コード プロファイル アナライザーを開きます。

  2. [一般] タブで [モデルの構成] ボタンをクリックします。

  3. [構成] タブの [読み込み] セクションで、ファイル ブラウザーまたは [最上位モデルを開く] ドロップダウン リストを使用して構成の最上位モデルを選択します。

  4. スタック使用量プロファイリングを有効にするには、[構成] セクションで [スタック使用量プロファイリング] ボタンをクリックします。

    あるいは、実行時間プロファイリングを有効にするには [構成] セクションで以下を行います。

    1. [実行時間プロファイリング] ボタンをクリックします。

    2. MATLAB ワークスペースに保存されるデータを減らすには、[すべてのデータ] ボタンをクリックしてから [要約データのみ] または [メトリクスのみ] を選択します。

    3. 階層内のモデルの関数プロファイリングを制御するには、[モデル設定] ビューで [関数プロファイリング] 列の設定 [off][coarse]、または [detailed] を使用します。

  5. モデルを Simulink エディターで表示するには、以下を行います。

    1. [モデルの階層構造] ビューまたは [モデル設定] ビューでモデルを選択します。

    2. ツールストリップの [検証] セクションで [モデルの強調表示] ボタンをクリックします。

  6. 階層全体のプロファイリング設定が有効であることを確認するには、[構成の検証] ボタンをクリックします。

  7. 階層内のモデルに対するプロファイリング設定を保存するには、[構成を適用] ボタンをクリックします。

関連する例

バージョン履歴

R2023a で導入