Гра підвисає, ти натискаєш Ctrl+Shift+Esc, а таблиця вже рухається: показник CPU гри виглядає скромним, стовпець GPU навіть близько не підходить до 100, «System interrupts» (системні переривання) тримається десь угорі, а біля браузера стоїть маленький листок. Кожен показник вимірює щось конкретне, і хибне прочитання одного з них посилає тебе не по те виправлення.
Відкрий його й вибери сторінку
Натисни Ctrl+Shift+Esc або клацни правою кнопкою Пуск і вибери Диспетчер завдань. Якщо він відкривається коротким списком, вибери «More details» (докладніше). На питання «що запущено» відповідають дві сторінки:
- Процеси: стаття Microsoft з усунення неполадок диспетчера завдань описує її як список застосунків і фонових процесів із використанням ресурсів кожним із них. Рядки згруповано в «Apps», «Background processes» і «Windows processes» (застосунки, фонові процеси, процеси Windows), а дочірні процеси програми згортаються під один рядок, який можна розгорнути.
- Подробиці: кожен процес в окремому рядку, за словами Microsoft, незалежно від того, застосунок це чи фоновий процес, і більше даних про кожен процес. Пріоритет задають саме тут.
На сторінці Подробиці клацни правою кнопкою заголовок стовпця і вибери «Select columns» (вибрати стовпці), щоб додати потрібне.
Стовпець CPU — це частка всього процесора
Показник CPU — це відсоток від усіх логічних процесорів разом. Приклад Microsoft бере вісім таких процесорів: якщо процес використовує 12,5 відсотка потужності CPU, він, за словами Microsoft, використовує еквівалент одного повного CPU. Тож гра, що показує 12,5% на такій машині, може мати потік, якому не лишається жодного вільного часу, а загальна цифра тобі цього не скаже.
Щоб це побачити, відкрий Продуктивність > «CPU», клацни правою кнопкою графік і вибери «Change graph to > Logical processors»; графік розділиться на окремі графіки для кожного логічного процесора. «Show kernel times» у тому самому меню ділить лінію на два кольори: час ядра і час користувача. Якщо один процесор тримається біля своєї стелі, поки відеокарта не зайнята, Відеокарта не на 100% пояснює, як це читати.
Стовпець GPU — це найзавантаженіший рушій
GPU складається з рушіїв, які можуть працювати паралельно, а стовпець мусить вибрати одне число. Допис команди DirectX про GPU в диспетчері завдань пояснює цей вибір: стовпець показує використання найзавантаженішого рушія серед усіх GPU для цього процесу. Стовпець «GPU engine» називає, якому GPU і якому рушію належить це число, наприклад 3D, Copy, Video Decode або Video Encode. На ПК з двома GPU це швидка перевірка того, на який із них потрапила гра; На якій відеокарті запускається гра розповідає, як це змінити.
Продуктивність > «GPU» показує два види пам'яті. Виділена пам'ять GPU (Dedicated GPU memory), за описом Microsoft, зарезервована виключно для використання GPU; спільна пам'ять GPU (Shared GPU memory) — це звичайна системна пам'ять, яку може використовувати або GPU, або CPU. Сторінка Подробиці може показувати обидві для кожного процесу через «Select columns», а Коли не вистачає VRAM — це сторінка про те, як читати їх під час гри. Для дискретної відеокарти сторінка продуктивності також показує її температуру в градусах Цельсія; в анонсі цієї функції 2019 року Microsoft писала, що для неї потрібен драйвер із підтримкою WDDM 2.4 або новішої версії.
Програми автозапуску: вплив вимірюється під час запуску
Сторінка Програми, що запускаються автоматично, яка є також у Параметри > «Apps» > «Startup», показує, що стартує разом із Windows. Її стовпець «Startup impact» (вплив на запуск) вимірює саме запуск, згідно зі сторінкою Microsoft про програми автозапуску: «Незначний вплив» (Low) — це менше 300 мілісекунд CPU і менше 292 кілобайт диска, «Високий вплив» (High) — понад 1 секунду CPU або понад 3 мегабайти диска. Високий вплив каже тобі, скільки програма коштує під час запуску Windows, а не що вона робить, коли гра вже працює. Для цього знайди її на сторінці процесів під час гри.
Листок — це режим ефективності
Коли команда продуктивності Windows представила режим ефективності (Efficiency mode), вона описала дві зміни: він знижує базовий пріоритет процесу до низького і вмикає режим QoS EcoQoS, а EcoQoS може означати роботу процесора на нижчій частоті для економії енергії. Процес у цьому режимі показує «Efficiency mode» у стовпці «Status» і значок листка. Неактивний (сірий) пункт, за словами того самого допису, означає ключовий процес Windows, обмеження якого може вплинути на систему. У тому ж дописі сказано, що Edge і Chrome експериментували зі зниженням власного базового пріоритету й використанням енергоощадних API, що диспетчер завдань також показує як режим ефективності, тож листок, якого ти не вмикав, — не несправність.
Він призначений для фонової роботи. Застосований до гри, він знижує пріоритет самої гри.
«System interrupts» — це не програма
Диспетчер завдань описує цей рядок як «Deferred procedure calls and interrupt service routines» (відкладені виклики процедур і процедури обслуговування переривань): це час, який процесор проводить у коді переривань драйверів, а не в якомусь застосунку. Архівний допис у блозі Microsoft назвав ці процедури тихими вбивцями продуктивності системи: за його словами, це код із найвищим пріоритетом, що виконується в системі, і коли він працює надто довго або надто часто, то може спричиняти збої звуку й відео та завмирання миші. Високе або стрибкувате значення тут вказує на драйвери, а Затримка DPC: коли фризить сам драйвер показує, як знайти, який саме.
Пріоритет: що змінює «Set priority» і надовго
На сторінці Подробиці клацни правою кнопкою процес і вибери «Set priority» (задати пріоритет): Realtime, High, Above normal, Normal, Below normal або Low; стовпець «Base priority» (базовий пріоритет) показує поточний. Пріоритет вирішує, хто працює першим, коли потоки змагаються за процесор: у документації Microsoft про планування потік із вищим пріоритетом, що стає готовим, зупиняє потік із нижчим. Та сама сторінка каже, що за замовчуванням клас пріоритету процесу — NORMAL_PRIORITY_CLASS, і вибирається він під час створення процесу. Тож зміна, зроблена в диспетчері завдань, діє, доки гра не закриється; наступний запуск знову починається з Normal, якщо тільки те, що запускає гру, не задає або не передає інший клас.
Три застереження:
- Та сама документація каже, що REALTIME_PRIORITY_CLASS не варто використовувати майже ніколи, бо він перериває системні потоки, які керують вводом миші, вводом клавіатури та фоновим скиданням даних на диск. Диспетчер завдань може також відповісти «Unable to set priority to Realtime. The priority was set to High instead.» (не вдалося встановити пріоритет Realtime, натомість встановлено High).
- High має власне застереження в документації: застосунок із класом високого пріоритету може використовувати майже весь доступний час CPU.
- Деякі процеси відмовляються від будь-якої зміни («Unable to change priority»). Захищені процеси, наприклад, не видають права доступу, якого потребує зміна пріоритету.
Якщо гра раз у раз запускається з пріоритетом, якого ти не вибирав, його під час кожного запуску задає сама гра, її лаунчер або постійне правило. Картка w0a Пріоритети ігор і програм прибирає постійні правила високого пріоритету та збережений разом із ними пріоритет вводу-виводу, хоч би який інструмент їх записав: на сторінці Fix знайди oncelik і натисни кнопку на картці (Пріоритети ігор і програм).
Диск і мережа: Resource Monitor
У диспетчері завдань є команда «Open Resource Monitor» (відкрити монітор ресурсів), а perfmon /res відкриває монітор ресурсів напряму. Його вкладка «Disk» показує «Processes with Disk Activity», а в розділі «Disk Activity» — кожен файл, який читається чи записується, з «Read (B/sec)», «Write (B/sec)» і «Response Time (ms)». Вкладка «Network» показує «Processes with Network Activity» і «TCP Connections». Так сплеск диска прив'язується до одного процесу й одного файлу; Диск на 100% у диспетчері завдань продовжує звідси.
Завершення процесу
Коли Microsoft переробляла диспетчер завдань для Windows 8, вона описала «End task» (зняти завдання) як дію, що виконується одразу, без запитання «Are you sure?» і без пропозиції зберегти. Вона також казала, що застосунки загалом безпечно завершувати примусово, тоді як завершення деяких процесів Windows може спричинити синій екран. На сторінці Подробиці завершення процесу спершу питає, і це питання попереджає: «If you end a system process, it might result in system instability.» (якщо завершити системний процес, це може призвести до нестабільності системи). Коли гра ще відповідає, збережися й закрий її з її власного меню.
Що не допомагає
- Realtime для гри. Він може переривати системні потоки, які обробляють ввід миші й клавіатури, як і каже застереження вище.
- Завершувати процеси Windows, щоб звільнити ресурси. Завершення деяких із них може спричинити синій екран.
- Вимикати лічильники продуктивності. Деякі посібники з оптимізації записують значення Disable Performance Counters, яке їх вимикає. Якщо Performance Monitor не знаходить жодного набору лічильників або програма моніторингу не бачить даних, картка w0a Лічильники продуктивності видаляє це значення: на сторінці Fix знайди
performansі натисни кнопку на картці (Лічильники продуктивності).
Пов'язане
- Затримка DPC: коли фризить сам драйвер
- Відеокарта не на 100%: як відрізнити обмеження процесора від решти причин
- Диск на 100% у диспетчері завдань: як знайти причину
- Коли не вистачає VRAM: що відбувається і як перевірити
- Antimalware Service Executable навантажує процесор під час гри
Ця сторінка допомогла?
Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.
Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.