Измерение задержки - PullRequest
       1

Измерение задержки

5 голосов
/ 25 марта 2011

Я работаю над многопользовательским проектом на Java и пытаюсь уточнить, как собирать результаты измерения задержки.

Моя текущая настройка - отправка пакета пакетов UDP через равные промежутки времени с отметкой временисервером и возвращается, затем время ожидания вычисляется и записывается.Я беру количество образцов, затем вычисляю среднее значение, чтобы получить время ожидания.

Кажется ли это разумным решением для определения задержки на стороне клиента?

Ответы [ 4 ]

15 голосов
/ 25 марта 2011

Я бы хотел, чтобы у клиента была временная метка для исходящего пакета, и чтобы ответ сохранил исходную временную метку. Таким образом, вы можете вычислить задержку туда и обратно, одновременно обходя любые проблемы, вызванные неправильной синхронизацией часов сервера и клиента.

3 голосов
/ 25 марта 2011

Вы также можете пометить пакеты времени, используемые в вашем игровом протоколе.Таким образом, у вас будет больше данных для интеграции вашей статистики.(Этот метод также полезен, чтобы избежать накладных расходов, вызванных дополнительным пакетом данных. Вы просто использовали данные, которые вы уже обмениваетесь, для своей статистики)

Вы также можете начать использовать другие метрики (например, дисперсию) для более точной оценки качества вашего соединения.

0 голосов
/ 05 ноября 2015

Если вы измеряете задержку при передаче туда и обратно, такие факторы, как смещение тактовой частоты, точность HW Clock и OS API, будут влиять на ваши измерения. Не тратя деньги на аппаратное обеспечение, вы можете получить инструкции RDTSC. Но RDTSC не обходится без собственных проблем, вы должны быть осторожны, как вы его называете.

0 голосов
/ 25 марта 2011

Если вы еще не начали свой проект, рассмотрите возможность использования сетевой инфраструктуры, такой как KryoNet , которая имеет RMI и эффективную сериализацию и которая автоматически отправляет запросы ping с использованием UDP.Вы можете легко получить значения времени пинга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...