Как измеряется процессорное время в Windows?

В настоящее время я создаю программу, которая идентифицирует процессы, которые зависли/вышли из-под контроля, и использует все ядро ​​ЦП. Затем программа завершает их, поэтому использование ЦП можно держать под контролем.

Однако я столкнулся с проблемой: когда я выполняю команду «список задач» в Windows, она выводит следующее:


Image Name:   Blockland.exe
PID:          4880
Session Name: Console
Session#:     6
Mem Usage:    127,544 K
Status:       Running
User Name:    [removed]\[removed]
CPU Time:     0:00:22
Window Title: C:\HammerHost\Blockland\Blockland.exe

Итак, я знаю, что строка с надписью «Время процессора» указывает общее время в секундах, используемое программой с момента ее запуска.

Но давайте предположим, что в системе 4 ядра процессора. Означает ли это, что он израсходовал 22 секунды на одно ядро ​​и, следовательно, в общей сложности использовал 5,5 секунды на весь ЦП? Или это означает, что процесс израсходовал 22 секунды всего процессора?


person Hammereditor2    schedule 03.03.2014    source источник


Ответы (1)


Это общее время ЦП по всем ядрам. Таким образом, если задача использовала 10 секунд на одном ядре, а затем 15 секунд спустя на другом ядре, она сообщит о 25 секундах. Если бы он использовал 5 секунд на всех четырех ядрах одновременно, он сообщил бы о 20 секундах.

person Tyler Durden    schedule 03.03.2014