Добавить в корзинуПозвонить
Найти в Дзене

Создатель Task Manager объяснил, почему Windows «врёт» про CPU

Создатель Диспетчера задач Windows Дэйв Пламмер рассказал, почему цифра загрузки CPU в окне Task Manager иногда не совпадает с тем, что вы видите и чувствуете в системе. По его словам, проблема не в «сломанных» расчётах, а в том, что сама метрика «процент загрузки» стала хуже описывать реальную работу современных процессоров. Пламмер — бывший инженер Microsoft. Он работал над ZIP-поддержкой в Windows и меню «Пуск» в Windows NT. А ещё он написал оригинальный Task Manager и специально делал его простым, чтобы он не съедал ресурсы компьютера. Пламмер называет измерение загрузки процессора задачей, которая выглядит элементарно только на словах. «Busy doing what, exactly?» — формулирует он ключевой вопрос: занят чем именно. Один поток или все ядра. Прямо сейчас или в среднем за секунду-две. Пользовательский режим, ядро, прерывания, DPC, idle loop или другие «корзины» учёта, которые нужны планировщику. ❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО Из-за этого «один про
Оглавление

Создатель Диспетчера задач Windows Дэйв Пламмер рассказал, почему цифра загрузки CPU в окне Task Manager иногда не совпадает с тем, что вы видите и чувствуете в системе. По его словам, проблема не в «сломанных» расчётах, а в том, что сама метрика «процент загрузки» стала хуже описывать реальную работу современных процессоров.

Пламмер — бывший инженер Microsoft. Он работал над ZIP-поддержкой в Windows и меню «Пуск» в Windows NT. А ещё он написал оригинальный Task Manager и специально делал его простым, чтобы он не съедал ресурсы компьютера.

Почему «процент CPU» — не спидометр, а бухгалтерия

Пламмер называет измерение загрузки процессора задачей, которая выглядит элементарно только на словах. «Busy doing what, exactly?» — формулирует он ключевой вопрос: занят чем именно. Один поток или все ядра. Прямо сейчас или в среднем за секунду-две. Пользовательский режим, ядро, прерывания, DPC, idle loop или другие «корзины» учёта, которые нужны планировщику.

❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО

Из-за этого «один процент» превращается в интерпретацию. И разные инструменты, или даже одно и то же окно в разные моменты, могут показывать цифры, которые субъективно кажутся «не теми».

Как оригинальный Task Manager считал загрузку

Пламмер объяснил, что Task Manager работает по таймеру и обновляет значения с некоторым шагом. Поэтому он показывает не «реальное время», а то, что произошло между обновлениями.

Самое простое решение выглядело бы так: взять загрузку и разделить на время между обновлениями. Но тут появляется новая проблема — GUI-таймер может срабатывать не идеально ровно. Пламмер сравнил это с попыткой доверять метрономy, который трясёт в кузове пикапа на разбитой грунтовке.

Поэтому он выбрал другой подход. Task Manager запрашивал суммарное время процесса с момента старта — сумму kernel time и user time. Затем он вычитал прошлое значение, сохранённое на предыдущем обновлении, и получал, сколько CPU-времени процесс реально «съел» за интервал. Дальше эта величина делилась на то, сколько CPU-времени за тот же интервал учли и потратили все процессы вместе. По словам Пламмера, это точнее, чем опираться на «идеально ровный» таймер интерфейса.

Почему на современных CPU цифры ощущаются «скользкими»

Пламмер отдельно подчёркивает: даже точный подсчёт времени — это всё равно усреднение между обновлениями. Он не фиксирует, что происходит в конкретную миллисекунду.

И главное: связь «время на CPU = объём сделанной работы» стала слабее. Он сравнивает это с дорогой: важна не только «заполненность трассы», но и то, кто по ней едет. «A half-full freeway with Ferraris on it can move a lot more traffic than a jammed freeway full of old cement trucks», — объясняет он. На современных процессорах есть динамическое изменение частоты, turbo boost, тепловые ограничения, глубокие idle-состояния. Поэтому одинаковые проценты загрузки могут означать разный реальный «объём работы».

Пламмер добавил, что в идеальном мире метрика CPU usage должна отражать «amount of work accomplished versus the theoretical maximum work that COULD have been accomplished». Но он уже на пенсии и не решает, как Windows будет считать это дальше.

Своё объяснение Пламмер дал в видео на канале Dave’s Garage. Там же он разбирает, почему задача «показать один честный процент» на практике упирается в детали планировщика и поведения железа.

❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО

Подписывайтесь на наши каналы в Telegram и Дзен, чтобы узнавать больше. И делитесь своим мнением и опытом в нашем чате.

Создатель Task Manager объяснил, почему Windows «врёт» про CPU ⚡️