2. 2
WORLD OF WARSHIPS
КТО Я?
Skype: alexbljack
mail: a_shinkarev@wargaming.net
• Уже почти 3 года борюсь за производительность игры «World of Warships» в
Wargaming Saint Petersburg
• До геймдева занимался тестирование производительности платформ для
online-trading’а
4. 4
ВИДЫ КРИТЕРИЕВ
Ограничения платформы или окружения
«Использовать не больше 2 ГБ виртуальной памяти на Windows x86»
WORLD OF WARSHIPS
Требования к производительности
«Время обработки запроса не больше 10 мс при расчетной нагрузке»
Допустимая потеря производительности
«Увеличение времени загрузки приложения не более, чем на 5 секунд»
5. 5
ПРОБЛЕМЫ НА РАЗЛИЧНЫХ ЭТАПАХ ЖИЗНЕННОГО ЦИКЛА
Начало разработки
WORLD OF WARSHIPS
Активная фаза разработки
• Критерии определяются на этапе формирования требований
• Продукт разрабатывается, удовлетворяя заданным критериям
• В текущем состоянии система может не удовлетворять каким-либо критериям
• Оптимизация может затянуться, но интегрировать новое все равно необходимо
• Фиксированные значения критериев слабо применимы – always failed
6. 6
CРАВНИТЕЛЬНЫЙ АНАЛИЗ
WORLD OF WARSHIPS
• Какую потерю производительности считать «допустимой»?
• Сколько производительности мы можем пожертвовать на новую
функциональность?
Не всегда рост потребления ресурсов ведет
к ухудшению пользовательского опыта
8. 8
WORLD OF WARSHIPS
ЗАЧЕМ?
• Критерии PASS / FAIL в основном базировались на опыте инженера по
тестированию
• Трудно было доказать правильность своего решения команде разработки
• Не было понимания, с какими потерями производительности мы готовы
мириться
• Значений критериев были привязаны к конкретной тестовой конфигурации
9. 9
ЦЕЛИ
WORLD OF WARSHIPS
• Система принятия решений при интеграции новой функциональности
• «Не делать хуже то, что и так плохо»
• Фокус на комфорте пользователя
11. ИНДИКАТОРЫ
WORLD OF WARSHIPS
• Для всех метрик определяются допустимые диапазоны значений
• Весь диапазон значений для метрики делится на фиксированные интервалы
• Каждый интервал характеризует то, насколько удовлетворительно
состояние метрики
• Границы интервалов постоянны и не зависят от конфигурации
12. 12
ПРИМЕР ИНДИКАТОРА
WORLD OF WARSHIPS
«ВРЕМЯ ОТКЛИКА ДЛЯ ЭЛЕМЕНТА UI»
Very bad Needs attention Acceptable Good
Текущее значение
14. 14
1. ВИЗУАЛИЗАЦИЯ СОСТОЯНИЯ ПРОИЗВОДИТЕЛЬНОСТИ
WORLD OF WARSHIPS
CPU USAGE
MEMORY USAGE
IO
NETWORK
LOGIN TIME
UI RESPONSE TIME
LOADING TIME
STABILITY
22. 22
ЧТО ДАЮТ «ИНДИКАТОРЫ»?
WORLD OF WARSHIPS
• Наглядная визуализация прироста / потери производительности
• Понимание «запаса» по производительности по каждой из метрик
• Гибкость при составлении PASS / FAIL критериев
• Возможность составить snapshot производительности в любой момент
• Быстрота принятия решений при высоком темпе разработки
• Отсутствие привязки к тестовой конфигурации