2016-01-11 3 views
2

Я работаю над сравнением HTTP/2 с предыдущими версиями протокола, например. HTTP 1.1, SPDY 3.1. Я тщательно изучил технические различия, и теперь я пытаюсь сравнить HTTP/2 с его предыдущими воплощениями. Тем не менее, я немного озадачен тем, что лучший способ сделать это.Бенчмаркинг HTTP/2 по сравнению с предыдущими версиями протокола

Я установил сервер Fedora под управлением h2o и там есть тестовый веб-сайт, который я использую для бенчмаркинга. Я хочу измерить такие вещи, как время загрузки страницы (PLT), общие раунды/сделанные запросы и общие данные, в частности размеры заголовков.

Можно ли делать точные измерения для этих показателей с помощью браузера, такого как Chrome или Firefox, с помощью инструментов разработчика, или это будет слишком сильно искажаться с помощью специальных накладных расходов браузера? Если да, то какие другие инструменты могут быть использованы для этого?

Любая помощь очень ценится!

ответ

2

Большинство людей, похоже, либо измеряют такие вещи, как время загрузки страницы/первую краску с помощью веб-инструментов своего браузера, либо они измеряют более высокую производительность передачи HTTP с помощью инструмента, такого как h2load.

Есть инструменты, такие как http://http2.loadimpact.com/, которые делают это за вас. (Рагнар также описал свои исследования по сравнению с h2 vs h1 на his slides.)

+0

Можете ли вы добавить некоторые ссылки на эти исследования @ Даниэль? – dsign

+0

В «исследованиях» появятся веб-инструменты браузера и проверьте вкладку в сети и посмотрите, как долго это происходит, с h2 vs h1. –

+0

Спасибо за ссылку! Эти слайды аккуратные! – dsign

0

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

Поскольку вы контролируете сайт, вы можете взглянуть на user timing interface, это облегчит вашу жизнь в браузере.

Более сложные и вовлеченные альтернативы - это сетевые свалки Wireshark и журналы strace.

Из-за риска быть лишним, я могу добавить несколько предложений: попробуйте использовать лабораторные условия. То есть, запустите сервер и клиент в сети, которую вы полностью контролируете. Например, смоделированная сеть на вашем локальном компьютере, а затем используйте netem для имитации сетевых параметров, таких как скорость и латентность. Если ваш сервер находится в Интернете, результаты ваших измерений будут зависеть от факторов, которые вы не контролируете, например, сколько людей обращаются к Интернету в вашем городе в это время дня.