Программист, CEO SHIFU.IO

Простыми словами: Latency (время ожидания) vs Response time (время отклика)

В книге “Высоконагруженные приложения” утверждается что это разные понятия, так ли это…

Определения из книги/википедии

Response time (время отклика) - время ответа (реакции) на запрос к сервису.

Пример: Запрос от браузера ушел на сервер, что-то там поделал и вернул страничку пользователю.

Latency (время ожидания) - задержка между инициализацией и физическим изменением в системе.

Пример: То самое “что-то там поделал” из предыдущего примера.

Вот аналогия, не связанная с программированием:

Если наступить на грабли, они ударят вам по лбу.

Время до необходимости прикладывать лед к голове - это время отклика (response time) грабель на ваше действие или ожидание (latency) лбом удара?

Теперь про программирование

Если сравнивать общее (цикл запрос-ответ от браузера) с частным (работой функции), то кажется, что это разные вещи…

А если упростить?

Пришел запрос с сервера, встал в очередь, очередь дошла до этого запроса, вызвалась функция, которая отсортировала массив, и выдала результат сортировки.

Возьмем кусок из этих операций:

Очередь вызывает функцию

С точки зрения очереди, latency - это время до вызова функции или до получения результата ее работы?

Допустим - до получения результата:

Очередь вызвала функцию и получила результат - явно response time (время отклика).

Допустим - до вызова функции:

Запуск функции - это и есть реакция на команду, значит это и есть - response time (время отклика)?