Ergebnisse der Untersuchung der Leistung verschiedener Methoden zum Abrufen einer Sammlung von Ressourcen mithilfe der Protokolle HTTP/1.1, HTTP/2 und HTTP/2 + Server Push fĂŒr den Zugriff auf den Server. In der Studie wurden auch die Auswirkungen auf die Leistung bewertet, die sich aus der Suche nach den angeforderten Daten im Browser-Cache und der Manipulation von Ressourcen auf der Ebene der Anwendungslogik ergeben (Reduzierung der Ressourcen in einem einzigen JSON-Block).
Das Testen der Leistung von 25 Anfragen zeigte allgemein vorhersehbare Ergebnisse â eine spĂŒrbare Verzögerung einer Anfrage ĂŒber HTTP/1.1 mit leerem Cache und einen Vorsprung bei der Ressourcennutzung in einem Block (Tests mit der Bezeichnung âCompoundâ). Die Leistung von Firefox und Chrome war ungefĂ€hr gleich, das Vorhandensein von Daten im Cache fĂŒhrte jedoch nicht zu der erwarteten Effizienzsteigerung.
Im Test zur Verarbeitung von 500 Anfragen trat jedoch eine merkliche Verzögerung zwischen Chrome und Firefox auf, wenn eine groĂe Anzahl von Anfragen ĂŒbertragen wurde, und eine Verzögerung zwischen Firefox und Chrome, wenn der Server-Push-Mechanismus verwendet wurde und bei den meisten Anfragen HTTP/2 verwendet wurde die Daten im Browser-Cache. Chrome zeigte eine effizientere Cache-Verarbeitung und Firefox zeigte eine effizientere Verarbeitung externer Anfragen.
Die Testergebnisse zeigten, dass HTTP/2 eine recht effiziente Verarbeitung einzelner Anfragen fĂŒr eine groĂe Anzahl von Ressourcen ermöglicht. Die Leistungsunterschiede zwischen einfachen Ressourcenteilungsmodellen und Methoden, die Ressourcen zu einem einzigen Block aggregieren, sind nicht signifikant genug, um eine wesentliche Verkomplizierung der Verarbeitungslogik auf Anwendungsseite zu rechtfertigen. ServerAggregation ist nur dann sinnvoll, wenn die Performance höchste PrioritĂ€t hat. Sind die Vereinfachung der Logik und eine einfache API wichtiger, empfiehlt sich die separate Verarbeitung von Ressourcen.
Eine weitere Schlussfolgerung ist, dass der Browser-Cache bei Verwendung von HTTP/2 keinen wesentlichen Einfluss auf die Leistung der Anforderungsverarbeitung hat (die vollstĂ€ndige AusfĂŒhrung von 501 Anforderungen war nur 51-mal langsamer als die AusfĂŒhrung von 90 Anfragen bei 1.2 % Cache-FĂŒllung in Firefox und 2.3-mal in Chrom). Die Verwendung von Server Push zeigte in Firefox keine nennenswerten Vorteile, war jedoch beim Laden einer groĂen Anzahl von Ressourcen in Chrome effektiv. Die Autoren der Studie stellten auĂerdem fest, dass die Optimierung auf der Serverseite einen gröĂeren Einfluss auf die Leistung hat als die Optimierung des im Browser ausgefĂŒhrten Client-Codes.
Source: opennet.ru
