В основном вы измеряете сетевую задержку и задержку рендеринга полученных данных для отображения. Таким образом, у вас есть две переменные, и вы должны измерить каждую из них. Вот что я бы сделал:
- Клиент запрашивает данные.
- Сервер отвечает данными и добавляет к ним метку времени сервера.
- Когда клиент заканчивает получать данные, он создает свою собственную временную метку клиента с
new Date().getTime()
.
- Чем клиент начинает отображать полученные данные на экран.
- По завершении он создает новую временную метку и вычитает предыдущую временную метку клиента: он получает время рендеринга.
- Немедленно отправляет другой запрос на сервер (не обычный запрос данных, а специальный запрос только для измерения) и добавляет к нему время рендеринга и временную метку сервера. Сервер получает данные: временную метку предыдущего сервера и задержку рендеринга клиента.
Теперь он может рассчитывать сетевую задержку (текущая метка времени сервера - метка времени запуска сервера - задержка рендеринга) /2.
Задержка настройки, которую вы ищете, это сетевая задержка + задержка рендеринга.