パフォーマンスプロファイラー
概要と主要な概念
パフォーマンスプロファイラーウィンドウを使用すれば、モデルの実行中にCPUがプロファイル対象の関数で消費する時間を記録することができます。
パフォーマンスプロファイラーは、モデルの実行中に特定のFlexSim関数で消費される時間を記録することによって機能します。記録が終了すると、パフォーマンスプロファイラーがデータを出力するため、最も時間が必要だったプロファイル対象の関数を特定できます。
パフォーマンスプロファイラーには、パフォーマンスデータを表示するための2つのメインビューがあります。1つ目のビューは、左側のパフォーマンスツリーです。このビューには、ツリー内の各ノードと、CPUがそのノードに関連付けられたコードの実行に消費した時間が表示されます。ノードのリストは、消費された時間順で並べられます。
パフォーマンスプロファイラーの2つ目のビューはパフォーマンスグラフです。このビューでは、各ノードがボックスとして表示されます。大きいボックスは、特定のノードでより多くのCPU時間が消費されたことを示し、小さいボックスは、そのノードでより少ないCPU時間が消費されたことを示します。また、ボックスはCPU時間によって色分けされます。最も明るい黄色のボックスは、CPUが最も多くの時間を消費したノードに対応します。最も暗い紫色のボックスは、CPUが最も少ない時間を消費したノードに対応します。
この2つのビューは連動します。たとえば、パフォーマンスツリービュー内のノードをクリックすると、そのノードがパフォーマンスグラフに赤色の枠付きで表示されます。
また、パフォーマンスグラフでボックスをクリックすると、パフォーマンスツリー内のそのボックスが強調表示されます。
この例では、モデルがストレージシステムを使用してピッカーで選択すべきアイテムを探しています。ストレージシステムはアイテムを見つけるためのクエリを実行しており、パフォーマンスプロファイラーはクエリが758回実行され、実行に合計92.54 msかかったことを示しています。
場合によっては、パフォーマンスプロファイラーを使用して、モデルの実行速度を向上させることができます。前の例では、モデルがアイテムを検索するクエリを実行するために最も多くの時間を消費していたことを確認しました。ただし、そのクエリではORDER BY句が使用されました。このORDER BY句がなければ、パフォーマンスプロファイラーの表示内容も変わってきます。
ORDER BY句がなければ、モデルはToolsフォルダで前回と同様の時間を消費しません。この特別なモデルでは、次に最も忙しいノードが統計コレクター内に存在します。
この方法で、パフォーマンスプロファイラーを使用すれば、モデル内の各オブジェクトまたは機能のCPUコストを確認することができます。この情報を使用して、モデルの総CPUコストを削減する方法が見つかるかもしれません。
パフォーマンスプロファイラーには、メインツールバーの[デバッグ]メニューからアクセスできます。
プロパティ
パフォーマンスプロファイラーには、次のプロパティがあります。
記録の開始/停止
このボタンは、パフォーマンスプロファイルの記録を開始または停止します。一度に1つのプロファイルしか記録できません。プロファイルの記録が始まると、過去のプロファイルデータがすべて消去されます。プロファイルの記録中は、非ビジー時間が含まれません。
パフォーマンスツリー
パフォーマンスプロファイルを記録した場合、このビューにツリー内の各ノードで使用された時間が総時間順に並べて表示されます。このビュー内でノードをクリックすると、それらがパフォーマンスグラフで強調表示されます。ノードを右クリックして、[ビューダウン]と[ビューアップ]を選択することもできます。[ビューダウン]を選択すると、パフォーマンスツリーとパフォーマンスビューが指定されたノードとそのサブノードだけが表示されるように更新されます。
パフォーマンスグラフ
パフォーマンスプロファイルの記録が完了すると、このビューにツリー内の各ノードで使用された時間の可視化表現が描画されます。大きく明るいボックスは、より多くの時間を使用したノードを表します。