Почему конвейер в Firefox не работает?
Чтобы убедиться, что использование http-конвейеризации может оптимизировать скорость загрузки ресурсов, я сделал следующее тестирование:
Откройте Firefox на Mac, в конфигурации измените максимальное количество подключений на сервер к 1, затем я открою тестовую страницу, которая загружает 12 изображений. Я получил следующую цифру:
Браузер загружает каждое изображение одно за другим, а загрузка 12 изображений занимает около 12 секунд (я добавляю задержку в 1 секунду для каждого изображения).
Затем я включаю конвейерную обработку в Firefox и обновляю страницу. Я получил следующую цифру:
Я вижу, что вообще нет блокировки. Все запросы конвейерны. Я полагаю, что общее время загрузки будет сокращено, но, к сожалению, то же самое, что и отсутствие конвейеризации. Поэтому я сомневаюсь, что конвейер не работает.
Я хочу знать, почему и как я могу это исправить. Я использую сервер Apache. Есть ли какие-то конфиги, которые нужно сделать в Apache?
1 ответ
Как сказано в вики,
Конвейерная обработка запросов приводит к значительному улучшению времени загрузки HTML-страниц, особенно по сравнению с соединениями с высокой задержкой, такими как спутниковые интернет-соединения. Ускорение менее заметно на широкополосных соединениях
Ваш тест основан на типичном широкополосном соединении. Сервер так короток (момент может быть проигнорирован) для приема каждого запроса, и каждый раз, когда он отправляет такую большую картинку, вся полоса пропускания соединения занята.
Итак, вы можете повторить тест с:
- Высокая задержка на каждый запрос.
- Много крошечных файлов в качестве ресурсов для ответа.