sldiagnostics
Simulink システムに関する診断情報の表示
構文
sldiagnostics('
sys
')
[txtRpt, sRpt] = sldiagnostics('sys')
[txtRpt, sRpt] = sldiagnostics('sys', options
)
[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats')
[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats')
説明
sldiagnostics('
は、sys
')sys
で指定されたモデルまたはサブシステムに関する次の診断情報を表示します。
各タイプのブロックの数
各タイプの Stateflow® オブジェクトの数
ルート モデルの状態数、出力、入力、およびサンプル時間
参照されるライブラリ名と参照されるブロックのインスタンス名
ルート モデルの各コンパイル フェーズに対して使用される時間と追加メモリ
sys
によって指定されたモデルが読み込まれていない場合、sldiagnostics
は分析を実行する前にモデルを読み込みます。
コマンド sldiagnostics('
は、sys
', options
)options
文字ベクトルとしてリストされる指定した操作に関する診断情報のみを表示します。次の表は、利用可能なオプションとそれに対応する有効な入力と出力をまとめています。
sldiagnostics
を使用すると、モデルの名前またはサブシステムのパスを入力できます。一部の分析オプションでは、sldiagnostics
でルート モデルしか分析できません。互換性のない入力をこれらの分析のいずれかに指定した場合、sldiagnostics
によって警告が発行されます。さらに、Simulink® ライブラリを入力した場合、sldiagnostics
は、モデルのコンパイルを必要とするオプション ([ブロック線図の更新]) を実行できません。その代わりに、sldiagnostics
によって警告が発行されます。
分析時に、sldiagnostics
はライブラリ リンクをたどりますが、モデル参照をたどったり、分析したりはしません。指定したモデルに含まれているすべての Model ブロックと参照先モデルを見つける方法の詳細については、find_mdlrefs
を参照してください。
オプション | 有効な入力 | 出力 |
---|---|---|
| ルート モデル、ライブラリ、またはサブシステム | システム内のすべてのユニーク ブロックとそれぞれの数をリストします。これは、マスク サブシステムまたは非表示のブロックに入れ子になっているブロックを含みます。 |
| ルート モデル、ライブラリ、またはサブシステム | システム内のすべてのユニークな Stateflow オブジェクトとそれぞれの数をリストします。 |
| ルート モデル | ルート モデルで使用される直達を示すフラグと同様に、状態数、出力、入力、サンプル時間をリストします。 |
| ルート モデル、ライブラリ、またはサブシステム | ライブラリ ブロックの名前と数と同様に、ルート モデルで参照されるすべてのユニーク ライブラリをリストします。 |
| ルート モデル | ルート モデルの各コンパイル フェーズに対して使用される時間と追加メモリをリストします。この情報は、モデルのコンパイル速度とメモリの問題のトラブルシューティングに役立ちます。 |
| ルート モデル |
このオプションは、既定の解析に含まれていないため、明示的に指定しなければなりません。 |
| 該当なし | すべての診断を実行します。 |
メモ
最初にモデルをシミュレートする前に CompileStats
診断を実行すると、より多くのメモリ使用を示します。ただし、モデルで CompileStats
診断を続けて実行すると、メモリ使用量がより少なくて済みます。
[txtRpt, sRpt] = sldiagnostics('sys')
は、テキストのレポート txtRpt
として診断情報と構造体配列 sRpt
を返します。構造体配列は、診断オプションに対応する次のフィールドを含みます。
blocks
stateflow
sizes
links
compilestats
[txtRpt, sRpt] = sldiagnostics('sys',
は指定されたオプションのみを返します。選択したオプションによって指定される解析のタイプが 1 つだけの場合、options
)sRpt
はその解析の結果しか含みません。
[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats')
は、txtRpt
と sRpt
の時間およびメモリ使用量に関する情報を返します。
[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats')
には、sRpt
出力の CompileStats
でレポートされた情報に加えて Simulink Coder のビルドの統計値が含まれます。
txtRpt
には、Simulink と Simulink Coder の各フェーズにかかった時間の書式設定されたテキスト出力が含まれます (RTWBuildStats
を指定した場合)。次に例を示します。Compile Statistics For: rtwdemo_counter Cstat1: 0.00 seconds Model compilation pre-start Cstat2: 0.00 seconds Stateflow compile pre-start notification Cstat3: 0.10 seconds Post pre-comp-start engine event Cstat4: 10.00 seconds Stateflow compile start notification Cstat5: 0.00 seconds Model compilation startup completed
sRpt
は、各フェーズの時間およびメモリ使用量を含む MATLAB® 構造体です。次に例を示します。sRpt = Model: 'myModel1' Statistics: [1x134 struct]
sRpt.Statistics
配列のサイズは、処理中に実行されたコンパイルおよびビルド フェーズの数を示します。Statistics フィールドを確認します。sRpt.Statistics(1) = Description: 'Phase1' CPUTime: 7.2490 WallClockTime 4.0092 ProcessMemUsage: 26.2148 ProcessMemUsagePeak: 28.6680 ProcessVMSize: 15.9531
CPUTime
およびWallClockTime
は、フェーズの経過時間を秒単位で示します。ProcessMemUsage
、ProcessMemUsagePeak
およびProcessVMSize
は、フェーズの実行中のメモリ消費量を MB 単位で示します。
パフォーマンスを把握するには、次の主要メトリクスを確認します。
WallClockTime
— 各フェーズの実経過時間 (秒単位)。処理の実行にかかった合計時間を求めるには、各フェーズのWallClockTime
を合計します。ElapsedTime = sum([statRpt.Statistics(:).WallClockTime]);
ProcessMemUsage
— 各フェーズの消費メモリ量。処理全体のメモリ消費量を求めるには、すべてのフェーズのProcessMemUsage
を合計します。TotalMemory = sum([statRpt.Statistics(:).ProcessMemUsage]);
ProcessMemUsagePeak
— 各フェーズにおける割り当てられたメモリの最大量。処理中のピーク メモリ割り当てを特定するには、すべてのフェーズにおけるこのメトリクスの最大値を求めます。PeakMemory = max([statRpt.Statistics(:).ProcessMemUsagePeak]);
メモ
メモリ統計情報は Microsoft® Windows® プラットフォームでのみ確認できます。
例
次のコマンドは、Simulink に付属する sldemo_bounce
モデルで使用されるブロックの各タイプをカウントしリストします。
sldiagnostics('sldemo_bounce', 'CountBlocks')
次のコマンドは、Stateflow に付属する sf_boiler
モデルで使用されるユニークなブロックと Stateflow オブジェクトの両方をカウントしリストします。返されるテキストのレポートは、myReport
として得られます。
myReport = sldiagnostics('sf_boiler', 'CountBlocks', 'CountSF')
次のコマンドは、Simulink に付属する f14
モデルを開き、Controller
サブシステムで使用されるブロック数をカウントします。
sldiagnostics('f14/Controller', 'CountBlocks')
次のコマンドは、f14
モデルで Sizes
と CompileStats
診断を実行し、結果をテキストのレポートと構造体配列として得ます。
[txtRpt, sRpt] = sldiagnostics('f14', 'Sizes', 'CompileStats')