Main Content

Simulink.profiler.Data

Simulink プロファイラーを使用して作成されたプロファイリング情報にアクセスする

R2020a 以降

説明

Simulink プロファイラーを使用してモデルの実行をプロファイリングすると、プロファイリング結果はシミュレーション メタデータに Simulink.profiler.Data オブジェクトとして保存されます。Simulink.profiler.Data オブジェクトを使用して、HTML プロファイラー レポートを生成したり、プロファイリング結果をプログラムによって処理、解析したりすることができます。

作成

Simulink.profiler.Data オブジェクトを作成するには、Simulink プロファイラーを使用してモデルの実行時間をプロファイリングします。プロファイリング シミュレーション結果は Simulink.SimulationOutput オブジェクトとして返されます。SimulationOutput オブジェクトの SimulationMetadata プロパティには、プロファイリング結果も含め、完全なシミュレーション メタデータが含まれます。

プロファイリング結果が含まれている Simulink.profiler.Data オブジェクトにアクセスするには、SimulationMetadata オブジェクトの TimingInfo プロパティを使用します。このプロパティには、シミュレーション実行時間に関する情報の概要を示すフィールドを含む構造体が含まれています。TimingInfo 構造体の ProfileData フィールドには、Simulink.profiler.Data オブジェクトが含まれています。

次のコードでは、関数 sim を使用してプロファイリング シミュレーションをプログラムによって実行してから、プロファイリング データが含まれている Simulink.profiler.Data オブジェクトにアクセスする方法を示します。

out = sim("MyModel","Profile","on");
profilingData = out.SimulationMetadata.TimingInfo.ProfilerData;

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

プロファイリング セッション識別子。文字ベクトルとして返されます。

例: 'vdp @ 21-Nov-2019 13:48:00'

プロファイリング セッションについて説明したカスタム テキスト。string または文字ベクトルとして指定します。

例: profilingData.UserString = "Updated gain to reduce chatter."; は、UserString プロパティを、プロファイリング シミュレーションを実行する前にモデルに対して行われた変更について説明する文に設定します。

データ型: char | string

この プロパティ は読み取り専用です。

モデルの内容と構造。Simulink.profiler.UINode オブジェクトとして返されます。rootUINode プロパティに保存された UINode オブジェクトは、UINode オブジェクトの階層構造としてモデルの内容と構造を表します。

  • rootUINode プロパティの値として返された UINode オブジェクトは、モデルの階層構造の最上位レベルに対応しています。

  • UINode オブジェクトの children プロパティには、最上位モデルのブロックに対応している 1 つ以上の UINode オブジェクトが含まれています。

  • これらの各 UINode オブジェクトには、children プロパティが含まれています。このプロパティには、モデルの階層構造の次のレベルにある内容に対応している 1 つ以上の UINode オブジェクトが含まれています。

UINode オブジェクトは、Simulink プロファイラーのブロック階層ビュー内の 1 行に対応しています。

次の表は、UINode オブジェクトのプロパティをまとめたものです。

プロパティ名プロパティ値説明
totalTimedouble

UINode オブジェクトに対応するブロックの合計時間。

ブロックの "合計時間" には、ブロック自体の実行時間と、このブロックに含まれているすべてのブロック (ブロックの "子" とも呼ばれる) の実行時間が含まれています。

たとえば、Subsystem ブロックの合計時間には、Subsystem ブロック自体の実行時間と、このサブシステム内に含まれているすべてのブロックの実行時間が含まれています。

selfTimedouble

UINode オブジェクトに対応するブロックの自己時間。

ブロックの "自己時間" は、ブロック自体の実行時間のみを示し、このブロックに含まれているいずれのブロックの実行時間も含まれていません。

たとえば、Subsystem ブロックの自己時間には、Subsystem ブロック自体の実行時間のみが含まれ、このサブシステムの内容の実行時間は含まれていません。

numberOfCallsdouble

シミュレーション中に UINode オブジェクトに対応するブロックが実行された回数。

children

Simulink.profiler.UINode オブジェクト

Simulink.profiler.UINode オブジェクトの配列

UINode オブジェクトに対応するブロックの内容。

すべてのブロックに他のブロックを含めることができるわけではありません。Subsystem ブロックや Model ブロックなど、他のブロックを含めることができるブロックでは、モデル内で階層が作成されます。

pathstring

最上位モデルを基準とした、UINode オブジェクトに対応するブロックの相対パス。

最上位モデルに対応する UINode オブジェクトの path プロパティの値は、モデルの名前です。

この プロパティ は読み取り専用です。

モデル実行スタック。Simulink.profiler.ExecNode オブジェクトとして返されます。rootExecNode プロパティに保存された ExecNode オブジェクトは、ExecNode オブジェクトの階層構造としてモデル全体の実行スタックを表します。

  • ExecNode オブジェクトには、最上位モデルに対応する実行スタックのノードの実行情報が含まれます。

  • ExecNode オブジェクトの children プロパティには、実行スタックの次のレベルにあるノードに対応している 1 つ以上の ExecNode オブジェクトが含まれています。

  • これらの各 ExecNode オブジェクトには、children プロパティが含まれています。このプロパティには、実行スタックの次のレベルにあるノードに対応している 1 つ以上の ExecNode オブジェクトが含まれています。

ExecNode オブジェクトは Simulink プロファイラーの実行スタック ビューの 1 行に対応します。

次の表は、ExecNode オブジェクトのプロパティをまとめたものです。

フィールド説明
totalTimedouble

ExecNode オブジェクトに対応するモデル実行スタック内のノードの合計実行時間。

実行スタック内のノードの "合計時間" には、ノード自体の実行時間と、このノードに含まれているすべてのノード (ノードの "子" とも呼ばれる) の実行時間が含まれています。

selfTimedouble

ExecNode オブジェクトに対応するモデル実行スタック内のノードの自己時間。

モデル実行スタック内のノードの "自己時間" には、ノード自体の実行時間のみが含まれ、ノード内に含まれているノードの実行時間は含まれていません。

numberOfCallsdouble

ExecNode オブジェクトに対応するモデル実行スタック内のノードが、シミュレーションで呼び出された回数。

locationstring

ExecNode オブジェクトに対応するモデル実行スタック内のノードが呼び出されたシミュレーション フェーズ。

children

Simulink.profiler.ExecNode オブジェクト

Simulink.profiler.ExecNode オブジェクトの配列

1 つ以上の ExecNode オブジェクト。各オブジェクトは、ExecNode オブジェクトに対応するモデル実行スタックのノード内に入れ子にされたモデル実行スタックのノードを表します。

objectPathstring

ExecNode オブジェクトが表すモデル実行スタック内のノードに対応するモデル要素のパス。

rootExecNode プロパティの値として保存された ExecNode オブジェクトの objectPath プロパティの値は、モデルの名前です。

オブジェクト関数

generateReportCreate report of data from profiling simulation run using Simulink Profiler

すべて折りたたむ

モデル vdp を開きます。

mdl = "vdp";
open_system(mdl)

関数 sim を使用して、Simulink プロファイラーを使用したモデルのプロファイリング シミュレーションを実行します。

out = sim(mdl,"Profile","on");

Simulink.SimulationOutput オブジェクト out 内のシミュレーション メタデータからプロファイリング結果を取得します。

profilingData = out.SimulationMetadata.TimingInfo.ProfilerData;

関数 generateReport を使用して、プロファイリング結果の HTML レポートを作成します。現在の作業ディレクトリにレポートを vdpProfilingResults というファイル名で保存します。

profilerReportName = "MyModelProfilingResults.html";
generateReport(profilingData,profilerReportName)

HTML レポートを開きます。

open(profilerReportName)

バージョン履歴

R2020a で導入