タスクの到着と完了率、およびスケジューラのキューの長さの変更に関係する情報を提供します。
virtual void Statistics(
unsigned int * pTaskCompletionRate,
unsigned int * pTaskArrivalRate,
unsigned int * pNumberOfTasksEnqueued
) =0;
パラメーター
pTaskCompletionRate
このメソッドの最後の呼び出し以降、スケジューラで完了したタスクの数。pTaskArrivalRate
このメソッドの最後の呼び出し以降、スケジューラ内に到着したタスクの数。pNumberOfTasksEnqueued
すべてのスケジューラ キュー内のタスクの総数。
解説
このメソッドは、スケジューラの統計を収集するためにリソース マネージャーにより呼び出されます。 ここで収集された統計は、動的なフィードバック アルゴリズムを実行してスケジューラの追加リソースの割り当ておよびリソースの解放をいつ行うかを決定するために使用されます。 スケジューラにより提供された値はオプティミスティックである場合があるため、現在のカウントに厳密に反映させる必要はありません。
リソース マネージャーでタスクや到着などに関するフィードバックを使用して、 自分のスケジューラとリソース マネージャーに登録された他のスケジューラの間でどのようにリソースのバランスを保つかを決定するには、このメソッドを使用する必要があります。 統計を収集しないように設定する場合は、DynamicProgressFeedback ポリシー キーをスケジューラのポリシー内の値 DynamicProgressFeedbackDisabled に設定します。こうすると、リソース マネージャーはこのメソッドをスケジューラに含めません。
統計情報がない場合、リソース マネージャーはハードウェア スレッドのサブスクリプション レベルを使用して、リソースの割り当ておよび移行に関する決定を行います。 サブスクリプション レベルの詳細については、「IExecutionResource::CurrentSubscriptionLevel」を参照してください。
必要条件
ヘッダー: concrtrm.h
名前空間: Concurrency