Сравнение на производителността на HTTP/1.1, HTTP/2 и HTTP/2 + Server Push

Публикувани резултати от проучването на производителността на различни методи за извличане на колекция от ресурси, използвайки протоколите HTTP/1.1, HTTP/2 и HTTP/2 + Server Push за достъп до сървъра. В изследването също е оценено влиянието върху производителността на наличието на исканите данни в кеша на браузъра и манипулацията на ресурсите на ниво логика на приложението (обединяване на ресурсите в един JSON-блок).

Тестването на производителността на 25 запитвания показа предсказуеми резултати — осезаемо изоставане на запитването през HTTP/1.1 при празен кеш и водеща връщаемост на ресурсите в един блок (тестове с етикет „compound“). Производителността на Firefox и Chrome беше приблизително на едно ниво, но наличието на данни в кеша не доведе до очакваното нарастване на ефективността.

Сравнение на производителността на HTTP/1.1, HTTP/2 и HTTP/2 + Server Push

Но при теста за обработка на 500 запитвания се установи осезаемо изоставане на Chrome спрямо Firefox при предаване на голям брой запитвания и изоставане на Firefox спрямо Chrome при прилагането на механизма Server Push и в ситуацията на използване на HTTP/2 с наличието на по-голямата част от данните в кеша на браузъра. Chrome показа по-ефективна работа с кеша, а Firefox — по-ефективна обработка на външни запитвания.

Сравнение на производителността на HTTP/1.1, HTTP/2 и HTTP/2 + Server Push

Сравнение на производителността на HTTP/1.1, HTTP/2 и HTTP/2 + Server Push

Според резултатите от тестовете, HTTP/2 позволява доста ефективно обработване на отделни запитвания на голяма колекция от ресурси. Разликите в производителността между простите схеми за разпределено предоставяне на ресурси и методите, при които ресурсите се агрегират в един блок, не са толкова съществени, за да оправдаят значителното усложнение на логиката на обработка от страна на приложението и сървър. Агрегирането има смисъл само в ситуации, в които производителността има най-висок приоритет. Когато по-важно е опростяването на логиката и опростеното API, има смисъл да се използва разпределена обработка на ресурсите.

Друго заключение е, че браузерният кеш при използване на HTTP/2 не оказва значително влияние върху производителността на обработката на заявки (пълното изпълнение на 501 заявка се оказа по-бавно от изпълнението на 51 заявка при 90% запълване на кеша, само 1.2 пъти в Firefox и 2.3 пъти в Chrome). Използването на Server Push не показа съществени предимства в Firefox, но се оказа ефективно при зареждането на голям брой ресурси в Chrome. Авторите на изследването също отбелязаха, че оптимизацията на сървърната част оказва по-значително влияние върху производителността, отколкото оптимизацията на клиентския код, изпълняван в браузъра.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster