Я пытаюсь измерить задержку отправки пакета. Я делаю это следующим образом. Клиент отправляет записанное время. Сервер принимает пакет и выдает разницу между текущим временем и записанным временем в пакете. В псевдокоде это
клиент
while(true)
// sleep(1)
packet.data = get_current_time()
send_packet(packet)
сервер
packet = receive_packet()
get_current_time() - packet.data
Если я ввожу спящий режим в клиент перед тем, как записать время и отправить его, я получу задержку около 80 микросекунд для пакета, который будет отправлен и получен. Однако, если я удаляю этот спящий режим так, чтобы цикл постоянно отправлял пакеты, я получаю задержку около 4 микросекунд. Почему такая резкая разница в производительности? Кэширование? Спекулятивное исполнение? Что здесь происходит? Спасибо за помощь!