Перейти до вмісту
CheckItWorks

Тест FPS

Триває 10 секунд із безперервною анімацією.

Гра чи сторінка, що прокручується, може виглядати плавною на папері й усе одно смикатися в руках — середній FPS ховає саме той тип пропущеного кадру, через який усе відчувається сіпано. Цей безкоштовний інструмент запускає 10-секундне вимірювання frame time прямо у вашому браузері й показує цифри, які справді пояснюють відчуття: середній FPS, 1% low, перцентилі frame time, кількість jank та визначену частоту оновлення вашого екрана.

Як це працює

  1. Закрийте все ресурсомістке. Призупиніть завантаження, закрийте інші ресурсомісткі вкладки й застосунки та зробіть цю вкладку активною — фонове навантаження змагається за ті самі кадри, які вимірює цей тест.
  2. Натисніть «Старт» і дайте тесту розігрітися. Перші кілька кадрів автоматично відкидаються — вони не показові для щойно запущеної анімації, яка ще стабілізується.
  3. Стежте за смугою та стрічкою frame time. Смуга, що рухається, і стрічка під нею — це саме те, що вимірюється: помітний стрибок чи сплеск — це реальний пропущений кадр, а не збій дисплея.
  4. Дочекайтеся 10-секундного вимірювання. Тест триває рівно 10 секунд, щоб 1% low і перцентилі спиралися на достатню кількість кадрів для стабільної статистики, а не на один вдалий чи невдалий момент.
  5. Ознайомтеся із середнім FPS, 1% low і кількістю jank. Середнє значення — головна цифра, але 1% low і кількість jank зазвичай чесніше описують, як усе відчувалося насправді.
  6. Порівняйте результат із визначеною частотою оновлення. Ваш результат оцінюється відносно визначеної межі вашого екрана — 58fps чудово для екрана 60Hz і посередньо для 144Hz.

Як цей тест вимірює частоту кадрів

Кожен кадр, який малює ваш браузер, проходить через requestAnimationFrame — API браузера, що викликає ваш код прямо перед наступним перемальовуванням і передає точну мітку часу. Цей тест вимірює проміжок між послідовними мітками часу — саме цей проміжок є реальним, фізичним часом, за який один кадр дістався до екрана, і це набагато чесніша цифра, ніж просто порахувати, скільки кадрів відбулося за секунду, і на цьому зупинитися.

  • Перші кілька кадрів відкидаються — щойно змонтована анімація, завантаження текстур і стабілізація макета роблять ранні кадри непоказовими.
  • Смуга, що рухається по канвасу, і стрічка frame time під нею малюються всередині того самого циклу вимірювання — те, що ви бачите, і Є тим, що вимірюється, а не окрема анімація, що працює паралельно.
  • Один запуск триває рівно 10 секунд — достатньо довго, щоб рідкісне сіпання відобразилося як реальна статистика, а не загубилося в шумі чи не домінувало в занадто короткій вибірці.

Середній FPS проти 1% low проти frame time: що означає кожна цифра

Одне-єдине середнє значення ховає більше, ніж показує. Запуск, який був ідеально плавним дев'ять секунд і завис на одну, все одно дасть у середньому пристойну цифру — саме тому цей тест показує чотири різні цифри замість однієї.

  • Середній FPS: загальна кількість кадрів, поділена на загальний час. Легко читати, але легко й «підправити» — плавна більшість маскує проблемну меншість.
  • 1% low: середня частота кадрів лише для найповільніших 1% кадрів. Це значно ближче до того, що ви фактично відчуваєте як «сіпання», ніж середнє значення.
  • Перцентилі frame time (p50/p95/p99): скільки часу зайняв типовий кадр порівняно з часом, якого сягнули лише найгірші 5% чи 1% кадрів — розкид між ними прямо показує стабільність.
  • Кількість jank: скільки кадрів зайняли помітно більше часу, ніж бюджет кадру вашого екрана — кадри, які людське око справді сприймає як пропуск.

Що спричиняє сіпання, яке ховає середній FPS

Низький 1% low або висока кількість jank за цілком нормального середнього значення майже завжди вказують на щось непостійне, а не на апаратну межу.

  • Фонові вкладки й застосунки, що змагаються за CPU/GPU, особливо все, що виконує власний рендеринг чи декодування відео.
  • Вимкнене апаратне прискорення в браузері, через що вся робота з композитингу лягає лише на CPU.
  • Застарілі або несумісні драйвери відеокарти, особливо після оновлення Windows.
  • Теплове дроселювання на ноутбуці — якщо сіпання посилюється що довше триває тест чи гра, а після паузи минає, це явна ознака перегріву.
  • Режим енергозбереження, що обмежує частоти CPU/GPU, — типово для ноутбуків, які працюють від батареї.
  • Розширення браузера, що впроваджують скрипти на кожну сторінку, додаючи невеликі, але реальні витрати на кожен кадр.

Чому браузер не може прочитати частоту оновлення (і що означає «визначено»)

Жоден веб-API не надає напряму частоту оновлення вашого екрана — немає такого методу, як navigator.refreshRate. Натомість цей інструмент визначає її за самим ритмом малювання кадрів: коли кадри надходять рівномірно, більшість із них щільно групується навколо одного інтервалу, і саме цей інтервал майже напевно є реальним бюджетом кадру вашого екрана.

  • Висока впевненість: переважна більшість кадрів потрапляє у вузький діапазон навколо одного чіткого інтервалу, що відповідає поширеній частоті оновлення (60/75/90/100/120/144/165/240Hz).
  • Середня або низька впевненість: кадри розкидані сильніше — або через щось, що заважало тесту, або тому, що ваш екран узагалі не тримає одну стабільну частоту.
  • Результат «не вдалося визначити» сам по собі інформативний — зазвичай це означає, що тест було перервано або що ваша панель використовує адаптивну синхронізацію (див. нижче).
Режими економії заряду й обмеження живлення можуть обмежити фактичну частоту кадрів нижче реального максимуму вашої панелі — MacBook чи Android-телефон, обмежений до 60Hz, з погляду цього тесту виглядатиме так само, як панель 60Hz.

Адаптивна синхронізація: G-Sync, FreeSync і VRR

Змінна частота оновлення (VRR) — яку продають як NVIDIA G-Sync, AMD FreeSync або просто «адаптивну синхронізацію» — навмисно змінює інтервал оновлення вашого екрана, щоб відповідати тому, що виробляє відеокарта, замість того щоб тримати одну фіксовану частоту. Це справжня функція, а не вада: вона спеціально створена, щоб непостійна частота кадрів відчувалася плавнішою, усуваючи невідповідність між виводом відеокарти й фіксованим розкладом екрана.

На панелі з VRR визначення частоти оновлення цим тестом часто, і цілком правильно, повертатиме низьку впевненість — немає єдиного інтервалу, за який можна «зачепитися», бо ваш екран його й не тримає. Це тест працює саме так, як задумано, а не помилка. Статистика frame time вище (середнє, 1% low, jank) при цьому не постраждає й залишається змістовною незалежно від цього.

Типові виправлення: апаратне прискорення, кабелі та налаштування частоти оновлення

  • Windows: Параметри → Система → Дисплей → Додаткові параметри дисплея — перевірте, що частота оновлення справді встановлена на максимум вашої панелі: нове встановлення драйвера чи новий кабель іноді непомітно скидають її до 60Hz.
  • macOS з ProMotion (120Hz): перевірте в Системних налаштуваннях → Дисплеї → Частота оновлення, що встановлено динамічний/високочастотний режим, а не фіксовані 60Hz.
  • Зовнішній монітор працює нижче заявленої частоти оновлення: кабель і порт мають значення — висока частота оновлення при високій роздільній здатності потребує DisplayPort або достатньо нової версії HDMI, а не будь-якого кабелю, що трапився в коробці.
  • У браузері: переконайтеся, що апаратне прискорення увімкнено в налаштуваннях браузера, і спробуйте вимикати розширення по одному, якщо jank не зникає.
  • На ноутбуці: підключіть його до розетки й перед тестом установіть план живлення «максимальна продуктивність», оскільки режими економії заряду — поширене й непомітне обмеження.

Чим цей тест не є

Це діагностика frame time, а не бенчмарк GPU і не спеціалізований вимірювач частоти оновлення. Він свідомо не рендерить важку 3D-сцену, щоб навантажити вашу відеокарту заради порівнянного балу, і не претендує на читання точної частоти вашої панелі так, як це робить спеціалізований апаратний інструмент, — він визначає її за ритмом малювання кадрів, і це чесно позначено як визначення протягом усього тесту.

Часті запитання

Чому число FPS змінюється щоразу, коли я запускаю тест?

Невелика різниця між запусками — це нормально: фонові процеси, теплова ситуація і те, що ще відкрито, трохи змінюються щоразу. Великі коливання зазвичай указують на щось непостійне, що змагається за ресурси; спробуйте закрити інші вкладки й застосунки та протестувати ще раз.

Що вважається хорошим FPS?

Це залежить від вашого екрана, а не від абсолютної цифри — 58fps чудово для екрана 60Hz, але посередньо для 144Hz, тому цей інструмент оцінює ваш результат відносно визначеної частоти оновлення, а не єдиного фіксованого порогу.

Чому тест показує 58 FPS на моєму екрані 60Hz, а не рівно 60?

Кілька кадрів нижче теоретичного максимуму — це цілком нормально: жоден пристрій не малює з математично ідеальним, незмінним інтервалом. Саме 1% low і кількість jank, а не незначні коливання навколо середнього, указують на реальну проблему.

Що таке «1% low» і чому це важливіше за середній FPS?

Це середня частота кадрів лише для найповільніших 1% кадрів у запуску. Високе середнє значення з низьким 1% low означає, що більшість запуску була плавною, але сталося реальне, помітне сіпання — саме те, що ховає єдина середня цифра.

Чи може цей тест виміряти реальну продуктивність моєї відеокарти?

Не напряму — він вимірює, наскільки стабільно ваш браузер малює легку анімацію на canvas, що переважно відображає конвеєр виведення зображення й будь-яке конкурентне навантаження, а не межу вашої відеокарти під важким 3D-рендерингом. Спеціалізований бенчмарк GPU — це інший, значно важчий інструмент.

Чому браузер не може повідомити мені точну частоту оновлення монітора?

Жоден веб-API її не надає. Цей інструмент визначає її за тим, як фактично надходять кадри, тому результат завжди позначається як визначення з рівнем впевненості, а не пряме апаратне зчитування.

Чому мій FPS падає, коли я перемикаю вкладки чи згортаю вікно?

Браузери сповільнюють фонові вкладки, щоб економити енергію та CPU, — саме тому цей тест переривається й просить повторити спробу, якщо вкладка йде у фон під час запуску: результат із фонової вкладки був би безглуздим.

Чи впливає цей тест на батарею або чи перегріває він пристрій?

Не більше, ніж будь-яка інша 10-секундна анімація. Він малює простий 2D canvas, а не важку 3D-сцену, і автоматично зупиняється після завершення вікна вимірювання.

Чому Chrome, Firefox і Safari показують різні результати на тому самому комп'ютері?

Кожен браузер має власний компоузитор і поведінку планування, а розширення, типові налаштування апаратного прискорення та ритм оновлень у них різняться — певний розкид очікуваний і не свідчить, що один із браузерів несправний.

Що таке jank насправді?

Кадр, який дістався до екрана помітно довше, ніж дозволяє бюджет кадру вашого дисплея, — достатньо довго, щоб людське око сприйняло це як пропуск чи сіпання, а не плавний рух.

Цей тест повністю виконується на вашому пристрої — він малює анімацію на canvas і вимірює час кадрів вашого власного браузера. Жодні дані про кадри, час чи результат ніколи не завантажуються, не передаються й ніде не зберігаються.