Leistungsvergleich von HTTP/1.1, HTTP/2 und HTTP/2 + Server Push

Veröffentlicht Ergebnisse der Untersuchung der Leistung verschiedener Methoden zum Abrufen einer Sammlung von Ressourcen unter Verwendung der Protokolle HTTP/1.1, HTTP/2 und HTTP/2 + Server Push für den Zugriff auf den Server. In der Studie wurde auch der Einfluss des Cache des Browsers auf die Leistung und die Manipulation von Ressourcen auf der Logikebene der Anwendung (Konsolidierung der Ressourcen in einem einzigen JSON-Block) bewertet.

Die Leistungstests von 25 Anfragen zeigten insgesamt vorhersehbare Ergebnisse – ein deutliches Nachsehen der Anfrage über HTTP/1.1 beim leeren Cache und die führende Rückgabe von Ressourcen in einem Block (Tests mit dem Label „compound“). Die Leistung von Firefox und Chrome lag ungefähr auf dem gleichen Niveau, aber der Cache hat nicht zu dem erwarteten Anstieg der Effizienz geführt.

Leistungsvergleich von HTTP/1.1, HTTP/2 und HTTP/2 + Server Push

Bei dem Test mit 500 Anfragen trat jedoch ein deutliches Nachsehen von Chrome gegenüber Firefox auf, wenn eine große Anzahl von Anfragen übertragen wurde, und ein Nachsehen von Firefox gegenüber Chrome beim Einsatz des Server-Push-Mechanismus sowie bei der Verwendung von HTTP/2, wenn der Großteil der Daten im Browser-Cache vorhanden war. Chrome zeigte eine effizientere Arbeit mit dem Cache, während Firefox eine bessere Verarbeitung externer Anfragen aufwies.

Leistungsvergleich von HTTP/1.1, HTTP/2 und HTTP/2 + Server Push

Leistungsvergleich von HTTP/1.1, HTTP/2 und HTTP/2 + Server Push

Die Ergebnisse der Tests zeigen, dass HTTP/2 ausreichend effizient ist, um separate Anfragen einer großen Sammlung von Ressourcen zu bearbeiten. Die Unterschiede in der Leistung zwischen einfachen Methoden zur getrennten Bereitstellung von Ressourcen und solchen, bei denen Ressourcen in einem Block aggregiert werden, sind nicht so erheblich, dass sie die erhebliche Komplexität der Verarbeitung auf der Anwendungsseite rechtfertigen würden, und ServerDie Aggregation macht nur in Situationen Sinn, in denen die Leistung höchste Priorität hat. Wenn die Vereinfachung der Logik und eine klare API wichtiger sind, ist es sinnvoll, die Ressourcen getrennt zu verarbeiten.

Eine weitere Erkenntnis ist, dass der Browser-Cache bei der Verwendung von HTTP/2 keinen signifikanten Einfluss auf die Leistung der Anfrageverarbeitung hat (die vollständige Ausführung von 501 Anfragen war in Firefox um das 1,2-fache und in Chrome um das 2,3-fache langsamer als die Ausführung von 51 Anfragen bei 90% Cachefüllung). Der Einsatz von Server Push zeigte in Firefox keine wesentlichen Vorteile, war jedoch effektiv beim Laden einer großen Anzahl von Ressourcen in Chrome. Die Autoren der Studie wiesen außerdem darauf hin, dass die Optimierung der Serverkomponente einen bedeutenderen Einfluss auf die Leistung hat als die Optimierung des im Browser ausgeführten Clientcodes.

Quelle: opennet.ru

60GB SSD 8Gb DDR4