Высокое «Время получения» для HTTP-ответов ниже 500 байт в Chrome Devtools - PullRequest
4 голосов
/ 12 декабря 2011

При использовании вкладки devtools Network в Chrome 15 (стабильной) в Windows 7 и Windows XP, я наблюдаю случаи, когда «получаю» время за HTTP ответ> 100 мс, но ответ 302 перенаправления или маленькое изображение (маяки) - с полезной нагрузкой ниже 500 байт (заголовок + содержимое).

Захват трафика TCP на Wireshark четко показывает отправленный сервер весь HTTP-ответ в одном TCP-пакете, поэтому время получения были 0. Хорошим примером является домашняя страница CNN, или любой крупный веб-сайт, который имеет много реклама и отслеживание маяков.

Это поднимает пару вопросов:

  1. Что определяется как «получение» в chrome devtools? это время от 1-го пакета до последнего пакета?
  2. Какие факторы влияют на клиентскую машину / операционные системы «время приема» вне связи сети / сервера?

В своих тестах я использовал виртуальную машину для Windows XP, а Windows 7 был на рабочем столе (четырехъядерный, 8 ГБ оперативной памяти).

Ответы [ 2 ]

1 голос
/ 05 июля 2012

Алгоритм Nagle и Delayed ACK являются двумя алгоритмами управления перегрузкой, которые по умолчанию включены на компьютерах с Windows.Это приведет к задержкам в трафике небольших полезных нагрузок в попытке уменьшить некоторую болтливость TCP / IP.

Задержка ACK вызовет ~ 200 мс дополнительного времени «Прием» на вкладке сети Chrome при получении небольших полезных нагрузок.Вот веб-страница, объясняющая алгоритмы и как их отключить в Windows: http://smallvoid.com/article/winnt-nagle-algorithm.html

1 голос
/ 29 декабря 2011
  1. «Время получения» - это время между событиями WebURLLoaderClient между didReceiveResponse («полученные заголовки ответа») и didReceiveData («кусок полученных данных ответа»), поэтому могут возникнуть некоторые внутренние издержки обработки.
  2. В общем случае имейте в виду, что протокол HTTP ориентирован на поток, поэтому разделение данных между TCP-пакетами непредсказуемо (половина ваших заголовков может попасть в один пакет, остальные и тело ответа могут получить в следующий, хотя это не похоже на ваш случай.)
  3. По возможности используйте последнюю доступную версию Chrome. Вероятно, он содержит меньше ошибок, включая сетевой уровень: -)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...