Коротка відповідь
Виміряно 23 жовтня 2026 року на одному ПК, в імітаторі гри з увімкненими рушіями. Сам процес w0a в середньому використовував:
- 0,15% одного логічного процесора (у ПК їх 16)
- 7,2 Mcycle/s, тобто 7,2 мільйона циклів процесора на секунду
- 29,6 перемикання контексту на секунду
Його робочий набір, тобто зайнята ним оперативна пам'ять, у чотирьох виміряних станах становив у середньому від 102 до 120 МБ (у цьому стані 119,6 МБ).
Жодне з цих чисел не дорівнює нулю. Заміри на більш завантаженому ПК наведено нижче.
У справжній грі не вимірювалося. Гра була імітацією: програмою, яка показує чорне повноекранне вікно й нічого не малює.
Що означають ці числа
- Відсоток одного логічного процесора. 0,15% — це 1,5 мс процесорного часу щосекунди, на одному з 16 логічних процесорів. Windows рахує цей час кроками приблизно по 15,6 мс, тому більшість односекундних відліків показує 0,00% (медіана), а відлік, на який припав один крок, показує 1,56% (95-й процентиль). Тому головне число — наступне.
- Цикли (Mcycle/s). Мільйони циклів процесора на секунду, використані потоками w0a, за лічильником циклів, який Windows веде для кожного потоку; цей лічильник не округлює до кроків. Медіана становила 5,8 Mcycle/s. Для масштабу: 1 ГГц — це мільярд циклів на секунду.
- Перемикання контексту. Скільки разів на секунду один із потоків w0a ставився на процесор для роботи, сумарно по всіх потоках. Кожне таке перемикання — це потік, розбуджений, щоб виконати якусь роботу.
- Робочий набір. Частина пам'яті w0a, яка перебуває в RAM. У грі з увімкненими рушіями він у середньому становив 119,6 МБ, а на піку 122,7 МБ.
Чотири стани
Кожен стан тривав п'ять хвилин. «Рушії вимкнені» означає, що всі частини перемикача Ігровий режим, крім плану живлення, були вимкнені. План живлення під час заміру не чіпали: w0amax був активний увесь час.
| Стан | Цикли, середнє (медіана) | Відсоток одного логічного процесора | Перемикання контексту на секунду | Робочий набір |
|---|---|---|---|---|
| Простій, рушії вимкнені | 4,5 (2,4) Mcycle/s | 0,09% | 10,9 | 103,2 МБ |
| У грі, рушії вимкнені | 1,7 (1,5) Mcycle/s | 0,08% | 10,7 | 108,2 МБ |
| Простій, рушії увімкнені | 5,3 (2,9) Mcycle/s | 0,10% | 13,9 | 102,0 МБ |
| У грі, рушії увімкнені | 7,2 (5,8) Mcycle/s | 0,15% | 29,6 | 119,6 МБ |
Рядки вимірювалися один за одним, поки інші програми на ПК і далі працювали та запускалися, тому різницю між двома рядками не можна приписати лише рушіям.
З вимкненими рушіями простій показує більше, ніж гра. Кожен екземпляр w0a спершу вимірювався в простої, невдовзі після запуску, і в цей час середовище виконання .NET ще компілювало код w0a у фоні: 2,30 Mcycle/s, 51,4% від суми в простої (51,6% з увімкненими рушіями). У грі з вимкненими рушіями компіляція займала вже лише 0,41 Mcycle/s. Це зниження, 1,9 Mcycle/s, становить приблизно дві третини різниці в 2,8 Mcycle/s.
Як вимірювали
- ПК: AMD Ryzen 7 9800X3D (8 ядер, 16 логічних процесорів), 31,6 ГБ RAM, NVIDIA GeForce RTX 5070 Ti, Windows 11 Pro збірка 26200.
- w0a: версія 2.1, збірка, опублікована 23 жовтня 2026 року. Програма працювала в області сповіщень із закритим вікном. Між станами змінювалися лише перемикачі рушіїв, а потім їх повернули як було.
- Програма замірів: раз на секунду окрема вимірювальна програма зчитувала процес w0a через функцію Windows
NtQuerySystemInformation: процесорний час, цикли та перемикання контексту кожного потоку, а також робочий набір. Кожен стан дав 300 відліків. - Імітатор гри: повноекранне вікно 1920×1080, яке за власним таймером виводить через DXGI 240 чорних кадрів на секунду. Воно було на передньому плані, і з
engine.logвидно, що імітатор було розпізнано як гру, а з увімкненими рушіями його пріоритет було піднято до AboveNormal. Вікно іншої програми залишалося над ним. - Порядок: спершу імітатор гри 2 хвилини працював без w0a, для порівняння. Потім w0a запустили з вимкненими рушіями, дали йому 90 секунд заспокоїтися, виміряли в простої, а потім із запущеним імітатором гри, після того як гра 40 секунд заспокоювалася. Те саме повторили зі щойно запущеним w0a з увімкненими рушіями.
- Навантаження на ПК: замір почався на спокійному ПК, за 3% загального завантаження процесора. У стані «у грі, рушії увімкнені» працювало 165 процесів, а процес w0a нарахував від 38 до 523 нових запусків процесів на хвилину.
Що показав імітатор гри
Він виводив 240 кадрів на секунду в усіх трьох замірах у грі, з w0a і без нього. Його власне використання процесора становило 203,4 Mcycle/s без w0a, 205,5 з вимкненими рушіями і 207,5 з увімкненими. Цей замір не показує, звідки береться ця різниця, тому вона не приписується w0a. Імітатор нічого не малює, тож нічого не каже про час кадру в справжній грі.
З увімкненими рушіями w0a рахує кадри гри через трасування подій Windows (ETW), відфільтроване лише за цією грою. Ці події записує сам процес гри, коли виводить кожен кадр, тому ця частина витрат потрапляє в цифри гри, а не в цифри w0a. Наскільки велика ця частина, не вимірювалося.
На більш завантаженому ПК
Два пізніші заміри на тому самому ПК, 24 жовтня 2026 року, додали навантаження навколо імітатора гри. У них використовувалися новіші збірки w0a, опубліковані того дня, з увімкненими рушіями.
- 71 хвилина в чотирьох відрізках: фонові потоки завантажували кожен логічний процесор на 50%; потім на 25% плюс 150 МБ/с читання з диска; потім на 50% плюс 100 МБ/с читання з диска плюс короткоживуча програма кожні 5 секунд; потім без додаткового навантаження. Імітатор гри також кожні 90 секунд запускав коротку допоміжну програму, а w0a запустили ще до початку. За відрізками процес w0a у середньому використовував від 0,12% до 0,17% одного логічного процесора і від 5,1 до 7,2 Mcycle/s.
- Чотири нові програми на секунду, у двох замірах по дві з половиною хвилини: процес w0a нарахував 637 і 648 запусків на хвилину. Він у середньому використовував 0,30% і 0,25% одного логічного процесора, 14,8 і 14,6 Mcycle/s, 66,9 і 68,0 перемикання контексту на секунду, а робочий набір становив 117,1 і 116,7 МБ. Кожен екземпляр w0a запускали за 90 секунд до його заміру, і компіляція в середовищі виконання .NET досі забирала з цього близько 5,3 Mcycle/s.
Кожна програма, що запускається, доходить до w0a як подія, і w0a переглядає кожну з них; з увімкненими зарезервованими ядрами w0a ще й вирішує, чи прибрати програму з ядер гри. Що більше програм запускається, то більше цієї роботи. У цих замірах були новіші збірки та інше навантаження, тому це не порівняння «до і після» з таблицею вище.
Що не вимірювалося
- Справжня гра. Гра тут була імітатором, який нічого не малює. Витрати w0a поруч зі справжньою грою не вимірювалися.
- Час кадру. Чи змінюють рушії час кадру твоєї гри, тут не вимірювалося. Щоб виміряти це на своєму ПК, запусти в бенчмарку серію A/B з A: рушії вимкнені та B: рушії увімкнені, як описано в Як читати результат бенчмарку.
- Інші процесори. Вимірювався лише один процесор, 8-ядерний AMD Ryzen 7 9800X3D. На процесорі з меншою кількістю ядер або з повільнішими ядрами та сама робота становить іншу частку; наскільки іншу, не вимірювалося.
- w0a з відкритим вікном. Вікно весь час було закрите. З відкритим вікном витрати не вимірювалися.
- Відеокарта, диск і мережа. Вимірювалися лише процесорний час і пам'ять w0a.
- Робота поза процесом w0a. Частину роботи з доставки подій до w0a, наприклад про запуск програми чи виведення кадру, виконують Windows або гра поза процесом w0a. Ця частина не вимірювалася.
Як увімкнути й вимкнути рушії
У новій інсталяції всі рушії вимкнені. Це частини перемикача Ігровий режим на сторінці Process Manager.
Щоб побачити, що робили рушії під час твоєї гри, відкрий engine.log: один рядок на кожну дію. У perf.log поруч є рядки про те, скільки деякі з них коштували під час гри. Обидва файли описано в статті Де лежить файл журналу.
Пов'язане
Із приблизно дванадцяти етапів між кліком і зміною пікселя програмі належать три, а решта належить прошивці, дисплею і грі: Як зменшити input lag: що програма може скоротити, а що ні
Ця сторінка допомогла?
Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.
Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.