Трансатлантический пинг быстрее, чем отправка пикселя на экран?

Трансатлантический пинг быстрее, чем отправка пикселя на экран?

Джон Кармак твитнул,

Я могу отправить IP-пакет в Европу быстрее, чем я могу отправить пиксель на экран. Насколько это хреново?

И если бы это был не Джон Кармак, я бы отнес это к категории «Интернет — это глупо».

Но это Джон Кармак.

Как это может быть правдой?

Чтобы избежать дискуссий о том, что именно имелось в виду в твите, вот что я хотел бы получить в ответ:

Сколько времени потребуется, в лучшем случае, чтобы отправить один IP-пакет с сервера в США куда-либо в Европе, с момента, когда программное обеспечение инициирует пакет, до момента его получения программным обеспечением, работающим выше уровня драйвера?

Сколько времени требуется, в лучшем случае, для отображения пикселя на экране, с момента, когда программное обеспечение на уровне выше драйвера изменяет значение этого пикселя?


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

Что касается пикселя, это простое машинное слово, которое передается через слот PCI Express, записывается в буфер, который затем сбрасывается на экран. Даже принимая во внимание тот факт, что «отдельные пиксели», вероятно, приводят к передаче всего экранного буфера на дисплей, я не вижу, как это может быть медленнее: это не то, что биты передаются «один за другим» — скорее, это последовательные электрические импульсы, которые передаются без задержки между ними (верно?).

решение1

Время отправки пакета на удаленный хост составляет половину времени, сообщаемого ping, который измеряет время прохождения сигнала туда и обратно.

Дисплей, который я измерял, былSony HMZ-T1Головной дисплей, подключенный к ПК.

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

Игровой контроллер обновляется с частотой 250 Гц, но нет прямого способа измерить задержку на входном пути (я бы хотел все еще подключать вещи к параллельному порту и использовать инструкции in/out Sam). В качестве контрольного эксперимента я провожу тот же тест на старом дисплее с ЭЛТ с вертикальной разверткой 170 Гц. Aero и несколько мониторов могут вносить дополнительную задержку, но при оптимальных условиях вы обычно увидите изменение цвета, начинающееся в какой-то точке на экране (вертикальная синхронизация отключена) два кадра по 240 Гц после нажатия кнопки. Кажется, что задержка составляет около 8 мс, проходящих черезUSB-скрытыйобработки, но я хотел бы лучше это закрепить в будущем.

Не редкость видеть, как настольным ЖК-мониторам требуется 10+ кадров 240 Гц, чтобы отобразить изменение на экране. Sony HMZ в среднем тратит около 18 кадров или 70+ миллисекунд.

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

Некоторая задержка свойственна технологии. ЖК-панелям требуется 4-20 миллисекунд, чтобы фактически измениться, в зависимости от технологии. Один чипLCoSДисплеи должны буферизировать один видеокадр для преобразования из упакованных пикселей в последовательные цветовые плоскости. Лазерным растровым дисплеям требуется некоторая буферизация для преобразования из возврата растра в шаблоны сканирования вперед и назад. Последовательный по кадрам или разделенный сверху вниз стерео 3D-дисплей не может обновлять средний кадр половину времени.

OLEDдисплеи должны быть одними из лучших, как показалeMagin Z800, что сопоставимо по задержке с 60 Гц ЭЛТ-монитором, что лучше, чем у любого другого не-ЭЛТ-монитора, который я тестировал.

Плохая производительность на Sony обусловлена ​​плохой разработкой программного обеспечения. Некоторые функции телевизора, такие как интерполяция движения, требуют буферизации по крайней мере одного кадра и могут выиграть от большего количества. Другие функции, такие как плавающие меню, преобразования форматов, защита контента и т. д., могут быть реализованы в потоковом режиме, но простой выход — просто буферизировать каждую подсистему, что может накапливать до полудюжины кадров в некоторых системах.

Это очень досадно, но все поправимо, и я надеюсь в будущем больше доверять производителям дисплеев в вопросах задержки.

решение2

Некоторые мониторы могут иметь значительную задержку ввода.

Учитывая отличное интернет-соединение по сравнению с паршивым монитором и видеокартой, это возможно.

Источники:

Консольные игры: Фактор задержки • Страница 2

Итак, при 30FPS мы получаем базовую производительность в восемь кадров/133 мс, но во втором клипе, где игра упала до 24FPS, есть четкая задержка в 12 кадров/200 мс между тем, как я нажимаю на курок, и тем, как Нико начинает анимацию стрельбы из дробовика. Это 200 мс плюс дополнительная задержка от вашего экрана. Ой.

Дисплей может добавить еще 5–10 мс.

Таким образом, задержка на консоли может достигать 210 мс.

И, согласно комментарию Дэвида, в лучшем случае отправка пакета займет около 70 мс.

решение3

Очень просто продемонстрировать задержку ввода на мониторах, просто прикрепите ЖК-дисплей рядом с ЭЛТ-дисплеем и покажите часы или анимацию, заполняющую экран, и запишите это. Один из них может отставать на секунду или больше. Это то, над чем производители ЖК-дисплеев ужесточили контроль, поскольку геймеры и т. д. стали замечать это чаще.

Например.Видео на Youtube: Тест задержки ввода Vizio VL420M

Связанный контент