Share via


作業単位のパフォーマンス カウンターの使用

作業単位のパフォーマンス カウンターは、アプリケーションのプロセスに関する Windows プラットフォームの分析情報を提供します。 作業単位を使用すると、アプリケーションのどの部分が特定のプロセスで実行され、所有権を要求するかをアプリで記述できます。 たとえば、Web ブラウザーには、すべてのプロセスを管理するための独自のタスク マネージャーがあります。作業単位のパフォーマンス カウンターを使用すると、その詳細レベルとコントロールを Windows タスク マネージャーから使用できます。

たとえば、ユーザーのデバイスで実行されている Microsoft Edge ブラウザーを考えてみましょう。 ブラウザーは特定のプロセスで実行されますが、タブ、ネットワークおよびオーディオ サービス、拡張機能、その他の機能をホストするために他のプロセスが作成されます。 特定のプロセスを使用して複数の作業単位を実行し、異なるアプリで共有できます。 内部的には、ブラウザーはその依存関係と必要なプロセスとの通信方法を認識していますが、Windows プラットフォームやその他のアプリケーションでは、ブラウザーの構成方法がわかりません。 このような情報を持つことは、より正確なリソース使用状況情報を提供し、アプリの問題の診断に役立ちます。タスク マネージャーは、プロセスで実行されている作業単位を報告できます。 これにより、デバッガーは、プロセスで実行されている作業の種類を記述することで、開発者のワークロードを簡略化できます。

各作業単位には、次のプロパティがあります。

  • AppOwnerProcessId: 指定された作業単位を所有するプロセスの ID。
  • HostProcessId: 特定の作業単位が実行されているプロセスの ID。
  • 種類: 作業単位を受け取るアプリケーションによって作業単位を解釈する方法。
  • タイトル: 作業単位のラベル。
  • UniqueId: 作業単位の識別子。

データ コントラクト

Windows プラットフォームの作業単位と共有される情報は、システムで実行されている任意のアプリで照会できます。 データは、 パフォーマンス カウンター API を使用して提供され、使用されます。一般公開され、文書化されています。 実装の一環として、パフォーマンス カウンターには一意の識別子文字列が必要です。これは、作業単位のラベルを識別するために使用します。 perf-counter 一意識別子文字列の形式が想定されます。

  • 先頭の "WorkUnit" 文字列。
  • 1 から始まる uniqueId。
  • ワーク ユニットが実行されているプロセスの識別子。
  • アプリケーションを表すメインプロセスの識別子。
  • 作業単位のわかりやすいタイトル。

注意

作業単位情報を更新する必要がある場合 (たとえば、タイトルが変更された場合)、その uniqueId は保持されます。 新しいユニットでは、新しい一意識別子を使用する必要があります。 次の例に示すように、uniqueId はパイプ文字 "|" を使用して連結する必要があります。

サンプル:

"WorkUnit|1|4321|1019|Instance 1 of pid 1111, owned by 1111"
"WorkUnit|1|8765|1019|Instance 1 of pid 5555, owned by 5555"
"WorkUnit|1|9999|1019|Instance 1 of pid 9999, owned by 9999"
"WorkUnit|2|4321|1019|Instance 2 of pid 1234, owned by 4321"
"WorkUnit|2|8765|1019|Instance 2 of pid 5678, owned by 8765"

作業単位の提供

パフォーマンス カウンター API を使用して、作業単位パフォーマンス カウンター セットのインスタンスを作成できます。 上記の データ コントラクト に従って、他のアプリがデータを正常に検証して使用できることを確認します。

作業単位の視覚化

作業単位のパフォーマンス カウンターからデータを照会する場合は、パフォーマンス カウンター API またはパフォーマンス モニター アプリケーションを使用できます。

  1. CMD プロンプトまたは [実行] ダイアログで「perfmon」と入力して PerfMon ツールを起動します。
  2. [監視ツール] で [パフォーマンス モニター] を選択します。
  3. [カウンターの追加] ボタン (緑色の '+' 記号) をクリックします。
  4. [作業単位] を選択して展開し、アプリケーションの実行によって提供されるカウンターを表示します。
  5. [アプリ所有者プロセス ID] と [ホスト プロセス ID] の一覧にあるカウンターを選択します。
  6. [すべてのインスタンス] を選択し、[追加] をクリックします。
  7. [OK] をクリックします。
  • UI の [カウンターの 追加] ウィンドウのスクリーンショットからの作業単位カウンターの選択。作業単位は、追加するカウンターとしてウィンドウで強調表示されます。