Код Junior Отладка и профилирование обновлено

Подсчёт пропущенных кадров

Условие

Профилировщик записал метки времени отрисованных кадров в миллисекундах. Напишите frameStats(timestamps, fps): целевой интервал 1000 / fps. Для каждого промежутка между соседними метками число пропущенных кадров равно Math.max(0, Math.round(gap / interval) - 1). Вернуть { frames, dropped, worstGap }: число кадров (длина массива), сумму пропущенных и самый большой промежуток (0, если промежутков нет).

Примеры

frameStats([0, 17, 33, 50], 60) // {"frames":4,"dropped":0,"worstGap":17}
frameStats([0, 50], 60) // {"frames":2,"dropped":2,"worstGap":50}
frameStats([0, 16, 33, 150, 166], 60) // {"frames":5,"dropped":6,"worstGap":117}

Как подойти

Подсказки: 2
  1. Интервал кадра: 1000 / fps.
  2. Округление Math.round(gap / interval) даёт, сколько интервалов уместилось в промежуток.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.