프로세스의 CPU 사용량을 모니터링하기 위해 PerformanceCounter 클래스를 사용하지 않으려 고 노력했습니다. 프로세스 수가 상당히 높을 때 많은 과정).Process.TotalProcessorTime에서 프로세스 CPU 사용량 계산
내 첫 번째 접근 방식은 Win32_PerfFormattedData_PerfOS_Processor 클래스와 PercentProcessorTime 속성을 사용하여 WMI 경로를 취하는 것이지만 여러 코어를 통해 CPU 사용량을 계산할 때 문제가되는 것 같습니다 (반환되는 최대 값은 100 %이므로 불가능합니다) CPU 코어 수에 따라이를 나눕니다. 결과가 부정확합니다).
마지막으로 프로세스의 클래스 TotalProcessorTime 속성을 사용하기로 결정했습니다. 슬프게도이 값을 기반으로 프로세스에서 사용하는 총 CPU 사용량의 백분율을 계산하는 방법을 모르겠습니다. 이전 PercentProcessorTime 값에서 현재 PercentProcessorTime 값을 빼서 프로세서가 특정 시간 제한 내에 프로세스에 소비 한 시간을 구해야한다는 것을 알고 있지만 거기에서 계속하는 방법을 모르겠습니다.
미리 감사드립니다.
테스트 예제도 제공 할 수 있습니까? – Demodave
분수 손실을 줄이려면 TimeStamp.TotalSeconds 대신 TimeStamp.Ticks를 사용하십시오. – Jan