다음을 통해 공유


IScheduler::Statistics 메서드

작업 도착 및 완료 비율과 관련한 정보를 제공하고 스케줄러에 대한 큐 길이를 변경합니다.

virtual void Statistics(
   _Out_ unsigned int * pTaskCompletionRate,
   _Out_ unsigned int * pTaskArrivalRate,
   _Out_ unsigned int * pNumberOfTasksEnqueued
) =0;

매개 변수

  • pTaskCompletionRate
    이 메서드를 마지막 호출한 후에 스케줄러가 완료한 작업 수입니다.

  • pTaskArrivalRate
    이 메서드를 마지막 호출한 후에 스케줄러에 도착한 작업 수입니다.

  • pNumberOfTasksEnqueued
    모든 스케줄러 큐에 있는 총 작업 수입니다.

설명

이 메서드는 리소스 관리자가 스케줄러에 대한 통계를 수집하기 위해 호출합니다. 여기에 수집된 통계는 동적 피드백 알고리즘을 구동하여 스케줄러에 더 많은 리소스를 할당하기에 적절한 시간과 리소스를 해제할 시기를 결정하는 데 사용됩니다. 스케줄러에서 제공하는 값은 최적화될 수 있으며 반드시 현재 수를 정확하게 반영할 필요는 없습니다.

리소스 관리자가 스케줄러와 리소스 관리자에 등록 된 다른 스케줄러 사이에서 자원을 균형을하는 방법을 결정하는 작업 도착과 같은 것들에 대한 피드백을 사용하고자 할 경우에는이 방법을 구현해야합니다. 통계를 수집하지 않으려면 정책 키 DynamicProgressFeedback을 스케줄러의 정책에서 값 DynamicProgressFeedbackDisabled로 설정할 수 있으며 리소스 관리자는 스케줄러에서 이 메서드를 호출하지 않습니다.

통계 정보가 없는 경우 리소스 관리자는 하드웨어 스레드 구독 수준을 사용하여 리소스 할당과 마이그레이션 결정을 내립니다. 구독 수준에 대한 자세한 내용은 IExecutionResource::CurrentSubscriptionLevel을 참조하십시오.

요구 사항

헤더: concrtrm.h

네임스페이스: 동시성

참고 항목

참조

IScheduler 구조체

PolicyElementKey 열거형

IExecutionResource::CurrentSubscriptionLevel 메서드