|
|
Veröffentlicht am 17.09.2023 10:45:34
|
|
|
|

Anforderungen: HTTP fügt nun einen Brotli-Kompressionsalgorithmus hinzu, um Gzip- und Brotli-Algorithmen zu testen. Je nach Projekt wird im Artikel nur die Dekompressionsgeschwindigkeit getestet.
Brotli hat12 Kompressionsstufen, von 0 bis 11, wobei 0 die schnellste Kompressionsgeschwindigkeit, aber das niedrigste Kompressionsverhältnis liefert, während 11 das höchste Kompressionsverhältnis liefert, aber mehr Rechenressourcen und Zeit erfordert. Als wir Brotli vor 5 Jahren erstmals implementierten, stellten wir fest, dass die 4-stufige Kompression eine ausgewogene Byte-Einsparung und Kompressionszeit bietet, ohne die Leistung zu beeinträchtigen. Je höher das Kompressionsniveau, desto kleiner der Fußabdruck, aber es werden mehr CPU- und Speicherressourcen verkauft.
ASP.NET Brotli-Algorithmus ist bereits im Kern integriert und benötigt keine Verweise auf Drittanbieterpakete. (Dieser Artikel bezieht sich zum Vergleich auf das Drittanbieter-Paket BrotliSharpLib und das integrierte), die Konfiguration ist wie folgt:
ASP.NET Core Brotli compression call flow: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
Der Aufzählungscode für Kompressionsniveaus ist wie folgt:
Erstellen Sie ein neues .NET 6-Konsolenprojekt mit folgendem Benchmark-Code:
Die Testergebnisse sind wie folgt:
Ich habe eine 503kb-Datei getestet, und nach der Kompression gab es kaum einen Unterschied, alles etwa 400kb, und es stellte sich heraus, dass die Dekompressionsgeschwindigkeit von Gzip immer noch schneller war als die von Brotli, was eigentlich gleich sein sollteDateigröße. NET-Version, Kompressionsniveau, Dateiinhalt uswKurz gesagt, es ist am besten, die Szene zu wählen, die zu dir passt.
Wenn Sie auf einen Fehler wie diesen stoßen:
Umwelt Zusammenfassung – > Fehler-Austrittscode in einem der Benchmarks erkannt. Es könnte durch folgende Antivirensoftware verursacht werden: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Windows Defender (windowsdefender://) Verwenden Sie InProcessEmitToolchain oder InProcessNoEmitToolchain, um neue Prozesserstellung zu vermeiden. Lösung
oder
(Ende)
|
Vorhergehend:[Dreh dich]. NET verwendet Brotli, um Daten zu komprimieren und zu dekomprimierenNächster:EF6 Required erlaubt leere Strings, aber keine Nullitäten
|