パフォーマンスおよびメモリをプロファイルウィンドウは、アプリケーションで使用されている部分、およびメモリがどのように使用されているかを確認するためのパワフルなツールです。パフォーマンスおよびメモリをプロファイルウィンドウには、システムの各VIに対して時間およびメモリ使用量を表示する対話式の表形式テーブルがあります。この表の各行には、特定のVIに関する情報が含まれています。各VIによって費やされる時間は複数のカテゴリに分類され、まとめられています。パフォーマンスおよびメモリをプロファイルウィンドウは、VIの1回の実行で費やされる最短時間、最長時間、平均時間を計算します。

対話式の表形式テーブルを使用して、一部の情報またはすべての情報の表示、異なるカテゴリによる情報のソート、特定のVIから呼び出された際のサブVIのパフォーマンスデータの確認を行うことができます。

ツール»プロファイル»パフォーマンス&メモリを選択してパフォーマンスおよびメモリをプロファイルウィンドウを表示します。以下の図は、既に使用中のウィンドウの例を示します。

メモリ使用量の収集の過程でVIの実行時間に大量のオーバーヘッドを追加する可能性があるため、メモリ使用量に関する情報の収集はオプションです。必要に応じてメモリ使用状況をプロファイルチェックボックスにチェックマークを付けることでパフォーマンスおよびメモリをプロファイルウィンドウを開始する前に、このデータを収集するかどうかを選択する必要があります。プロファイルセッションが開始された後は、このチェックボックスを変更することはできません。

結果を参照する

テーブルに情報の一部のみを表示するように選択することができます。一部の基本的なデータは常に表示できますが、パフォーマンスおよびメモリをプロファイルウィンドウで適切なチェックボックスにチェックマークを付けるか、チェックマークを外すことで、統計、詳細、および (有効な場合) メモリ使用量を表示するように選択することができます。

また、グローバルVIに対してパフォーマンスに関する情報が表示されます。ただし、この情報は、下記のカテゴリ特有のセクションに記述されているように、多少異なる解釈が必要となることがあります。

表形式テーブルでサブVIの名前をダブルクリックすることで、サブVIのパフォーマンスデータを表示することができます。この操作を実行すると、VI名の下に新規の行が表示されます。この行にはサブVIの各パフォーマンスデータが含まれます。グローバルVI名をダブルクリックする際、フロントパネルの各制御器に新規の行が表示されます。

希望の列ヘッダの領域をクリックすることで、表形式テーブルでデータの行をソートすることができます。現在のソート列は太字のヘッダタイトルで示されます。

VIのタイミングは、必ずしもVIが完了するまでの経過時間の量に対応しません。これはマルチスレッド実行システムでは複数のVIの実行を相互配置することが可能なためです。また、ユーザがダイアログボックスに応答するまでの経過時間、ブロックダイアグラムの「待機 (ms)」関数が完了するまでの経過時間、マウスのクリックをチェックするまでの経過時間など、どのVIにも起因しない特定の量のオーバーヘッドがあります。

タイミング情報

タイミング統計チェックボックスがオンの場合、VIのタイミングの詳細を表示することができます。

タイミング詳細チェックボックスをオンにすると、VIの実行の経過時間を合計した複数のタイミングカテゴリの内訳を表示することができます。多くのユーザインタフェースのあるVIでは、これらのカテゴリは経過時間が最大の操作を判断するのに役に立ちます。

メモリ情報

プロファイルセッションを開始する前にメモリ使用状況をプロファイルチェックボックスにチェックマークを付けることで有効になるメモリ使用チェックボックスにチェックマークを付けると、VIでのメモリの使用状況に関する情報を表示することができます。これらの値はVIのデータスペースに使用するメモリの量で、すべてのVIに必要なサポートデータ構造は含まれません。VIのデータスペースには、フロントパネルの制御器に明示的に使用されるデータだけでなく、コンパイラが自動的に作成した一時的なバッファも含まれます。

メモリサイズはVIの実行完了時に測定されますが、正確な使用量の合計が反映されない場合があります。たとえば、実行中にVIによりサイズの大きい配列が作成されたが、VIの完了前にサイズが縮小された場合、表示されるサイズは実行が完了する前の大きいサイズではありません。

このセクションには、2つのデータセット (使用されたバイト数に関連したデータと使用されたブロック数に関連したデータ) が表示されます。ブロックは、単体のデータを保存するために使用したメモリの連続したセグメントです。たとえば、整数の配列の長さは複数のバイトを含むことは可能ですが、複数のブロックを占領することはできません。実行システムは、配列、文字列、パス、および画像の独立したメモリブロックを使用します。アプリケーションのメモリヒープ領域にある大量のブロックは、(実行だけでなく) パフォーマンス全体が低下する原因となる可能性があります。