ドキュメンテーション

このページは前リリースの情報です。該当の英語のページはこのリリースで変更されています。このリリースの英語のドキュメンテーションを参照するには、言語設定を United States に変更してください。

パフォーマンス データのキャプチャ

プロファイラーとは

データが取り込まれ、モデルの実行時にどの部分がシミュレーションを実行するときに最も時間を要したかがわかります。この情報により、モデルのどの部分に焦点をあてて、最適化する努力を行えば良いかを決めることができます。

    メモ:    プロファイラーでラピッド アクセラレータ モードを使用することはできません。

モデルの各関数の実行にかかった時間を示すパフォーマンス データは、シミュレーション プロファイルというレポートに置かれます。

プロファイラーはどう機能するか

次の疑似コードは、プロファイラーが基本としている実行モデルの要約です。

Sim() 
	ModelInitialize(). 
	ModelExecute() 
		for t = tStart to tEnd
		Output()
		Update()
		Integrate()
			Compute states from derivs by repeatedly calling: 
				MinorOutput() 
				MinorDeriv() 
			Locate any zero crossings by repeatedly calling: 
				MinorOutput() 
				MinorZeroCrossings() 
		EndIntegrate 
		Set time t = tNew. 
	EndModelExecute
	ModelTerminate
EndSim 

この概念モデルに基づき、次の表の関数をモデルや関数により、0 回、1 回あるいはそれ以上の回数呼び出し、モデルを実行します。

関数目的レベル
sim

モデルをシミュレートします。この最上位レベルの関数はモデルをシミュレートするために必要な関数を呼び出します。この関数に要する時間は、モデルをシミュレートする総時間です。

システム

ModelInitialize

シミュレーションのためにモデルの準備

システム

ModelExecute

シミュレーション開始から終了までのタイム ステップごとに、output、update、integrate などの関数がそれぞれのブロックのために呼び出されて、モデルが実行されます。

システム

Output

現在のタイム ステップでの、1 ブロックの出力を計算します。

ブロック

Update

現在のタイム ステップでのブロックの状態を更新します。

ブロック

Integrate

現在のタイム ステップで、状態導関数を積分することによってブロックの連続状態を計算します。

ブロック

MinorOutput

ブロックの出力をマイナー タイム ステップで計算します。

ブロック

MinorDeriv

ブロックの状態導関数をマイナー タイム ステップで計算します。

ブロック

MinorZeroCrossings

ブロックのゼロ クロス値をマイナー タイム ステップで計算します。

ブロック

ModelTerminate

メモリを解放し、その他シミュレーション終了の一掃を行います。

システム

Nonvirtual Subsystem

ブロックごとに output、update、integrate などの関数を呼び出すことによって、現在のタイム ステップで、非バーチャル サブシステムの出力を計算します。この関数に要した時間は、非バーチャル サブシステムを実行するのに必要な時間です。

ブロック

プロファイラーは、それぞれの関数の呼び出しを実行するのに必要な時間を計算し、各関数にどれくらいの時間を要したかの詳細なレポートをモデルの最後に作成します。

プロファイラーを使用可能にする

モデルをプロファイルするには、モデルを開き、[解析][パフォーマンス ツール] メニューから [プロファイラー レポートを表示] を選択します。その後、シミュレーションを開始します。シミュレーションが終了すると、Simulink® コードはヘルプ ブラウザー上に、モデルのシミュレーション プロファイルを作成し表示します。

概要セクション

概要ファイルには、次のパフォーマンス総計が表示されます。

項目説明

合計記録時間

モデルを実行するのに要した総時間

ブロックのメソッド数

ブロックレベル関数 (Output() など) を実施した総回数

内部メソッドの数

システムレベルの関数 (ModelExecute など) を実施した総回数

モデルのメソッド数

モデルで呼び出されるメソッド数

非バーチャル サブシステム メソッドの数

非バーチャル サブシステム関数を実施した総回数

時計の精度

プロファイラーの時間測定の精度

クロック速度

プロファイラーの時間測定の速度

概要部分には、シミュレーションで呼び出される各関数の概要プロファイルが示されます。それぞれの関数をリスト表示するために、概要プロファイルは、次の情報を記します。

項目説明

名前

関数名。この項目はハイパーリンクです。クリックすると、この関数の詳細なプロファイルが表示されます。

時間

関数のすべての呼び出しを実行するのに要した総時間を絶対値や総解析時間のパーセンテージで表示。

呼び出し

関数が呼び出された回数

時刻/呼び出し

関数の呼び出しに要した平均時間。この関数によって呼び出された関数に要した時間を含みます。

自己時間

この関数を実行するのに要した平均時間。この関数によって呼び出された関数に要した時間は省きます。

場所

関数が呼び出され実行されたブロックやモデルを示します。この項目はハイパーリンクです。クリックすると、モデル ダイアグラムの対応するアイコンが強調表示されます。このハイパーリンクは、ヘルプ ブラウザーでプロファイルを表示している場合にのみ使用できます。

詳細なプロファイル部分

この部分には、モデルをシミュレートするために呼び出される各関数の詳細なプロファイルが含まれます。それぞれの詳細なプロファイルには、関数の概要プロファイルで示されたすべての情報が含まれています。また、詳細なプロファイルには、プロファイルされた関数を呼び出した関数 (親関数) やプロファイルによって呼び出された関数 (子関数) が表示されます。親関数や子関数の名前をクリックすると、その関数の詳細なプロファイルが表示されます。

    メモ:    親モデルのプロファイラーを有効にしても、参照先モデルのプロファイラーは有効になりません。プロファイラーは個々の参照モデルで有効にしなければなりません。プロファイリングは、参照モデルをノーマル モードで実行する場合にのみ行われます。詳細は、「ノーマル モード」を参照してください。

Simulink プロファイラー結果の保存方法

プロファイラー レポートを MATLAB® ワークスペースの変数に保存し、その後で mat ファイルに保存できます。後で、レポートを再生成し確認することができます。

モデル vdp のプロファイラー レポートを変数 profile1 とデータ ファイル report1.mat に保存するには、次の手順をすべて実行します。

  1. [Simulink プロファイラー レポート] ウィンドウで、[ここをクリック] をクリックします。Simulink によってレポートのデータが変数 vdpProfileData に保存されます。

  2. MATLAB コマンド ウィンドウに移動します。

  3. レポートを確認するには、コマンド ラインで次のコマンドを入力します。

    slprofreport(vdpProfileData)
  4. データをベース ワークスペース内の変数 profile1 に保存するには、次を入力します。

    profile1 = vdpProfileData;
  5. データを report1 という mat ファイルに保存するには、次のように入力します。

    save report1 profile1

レポートを後で表示するには、MATLAB コマンド ウィンドウから次のように入力します。

% Load the mat file and recreate the profile1 object
load report1
% Recreate the html report from the object
slprofreport(profile1);
この情報は役に立ちましたか?