Performance тесты мобильной игры: 7 метрик, которые реально важно проверить
«Игра тормозит» — слишком абстрактно для тикета. Чтобы performance-проблема была воспроизводимой, измеряемой и трекабельной — нужны конкретные числа. Вот 7 метрик, которые имеет смысл смотреть на каждом релизе.
— FPS и frame time. 60 FPS не равно «плавно». Один пик в 100 ms между обычными 16 ms — пользователь увидит micro-stutter. Смотри frame time, а не средний FPS. Цель: 95% кадров < 16.7 ms на target-девайсах. Инструмент: Unity Profiler → Frame Debugger, Xcode Instruments → Time Profiler.
— Memory footprint. На iOS лимит до crash зависит от модели — на iPhone SE/8 порядка 1.4 GB, на iPhone 15 Pro около 5 GB. Измеряй Resident Memory во время сессии, не только peak. Утечки видны как монотонный рост между уровнями.
— Draw calls и SetPass calls. На бюджетных Android (Adreno 510) каждый SetPass call ~0.3 ms. 200 calls = 60 ms = меньше 16 FPS. Цель для casual mobile: <100 SetPass calls на frame.
— GC pressure. В Unity garbage collector делает stop-the-world паузы. Если allocations >1KB/frame — будут спайки. Цель: 0 KB/frame в hot path. Profiler → Memory → GC Allocations in Frame.
— Battery drain. На iOS через Xcode → Energy Impact: должно быть «Low» при обычном гейплее. Если «High» — стоит ограничивать FPS в меню (часто там крутятся эффекты на 120 fps без нужды) и троттлить fixed-update.
— Thermal state. Через 10 минут активной игры девайс начинает throttling. Симптом: FPS просел с 60 до 30, ничего не пофиксил. На iOS — ProcessInfo.thermalState, на Android — PowerManager.getCurrentThermalStatus(). Проверяй после 15-минутной сессии.
— Cold start до первого фрейма геймплея. Критическая UX-метрика. Цель: <3 секунд на target-девайсе, <5 на low-end. Замеряй через хуки в startup и фиксируй точку, когда player может тапнуть.
Что встроить в QA-процесс
✅ На каждый release — отчёт по этим 7 метрикам на 2-3 target-девайсах (low / mid / high).
✅ Performance budget: «никогда не больше N MB memory peak, никогда не больше N draw calls». Регрессия выше — блокирует релиз.
✅ 15-минутная stress-session перед релизом — обязательно. Thermal throttling и memory leaks вылезают только тут.
Подробнее: Unity Profiler Manual, Apple — Measuring App Performance.