Požiadavky: HTTP teraz pridáva algoritmus kompresie Brotli na testovanie algoritmov Gzip a Brotli. V závislosti od projektu sa v článku testuje iba rýchlosť dekompresie.
Brotli má12 úrovní kompresie, od 0 do 11, kde 0 poskytuje najrýchlejšiu kompresnú rýchlosť, ale najnižší kompresný pomer, zatiaľ čo 11 poskytuje najvyšší kompresný pomer, ale vyžaduje viac výpočtových zdrojov a času. Keď sme pred 5 rokmi prvýkrát implementovali Brotli, zistili sme, že 4-úrovňová kompresia poskytuje rovnováhu medzi úsporou bajtu a časom kompresie bez kompromisov vo výkone. Čím vyššia je úroveň kompresie, tým menšia je stopa, ale predáva to viac CPU a pamäťových zdrojov.
ASP.NET algoritmus Brotli je už zabudovaný v jadre a nevyžaduje odkazy na balíky tretích strán. (Tento článok sa bude odvolávať na balík tretích strán: BrotliSharpLib a zabudovaný pre porovnanie), konfigurácia je nasledovná:
ASP.NET Tok volaní kompresie Core Brotli: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
Kód enumerácie na úrovni kompresie je nasledovný:
Vytvorte nový .NET 6 konzolový projekt s nasledujúcim benchmarkovým kódom:
Výsledky testov sú nasledovné:
Otestoval som 503kb súbor a po kompresii nebol veľký rozdiel, všetko okolo 400kb, a ukázalo sa, že rýchlosť dekompresie v Gzip bola stále vyššia ako v Brotli, čo by malo byť rovnakéveľkosť súboru, . NET verzia, úroveň kompresie, obsah súborov a podobneStručne povedané, najlepšie je vybrať si scénu, ktorá vám vyhovuje.
Ak narazíte na podobnú chybu:
Životné prostredie Zhrnutie -> Detegoval chybový výstupný kód z jedného z benchmarkov. Môže to byť spôsobené nasledujúcim antivírusovým softvérom: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Windows Defender (windowsdefender://) Použite InProcessEmitToolchain alebo InProcessNoEmitToolchain, aby ste sa vyhli vzniku nových procesov. riešenie
alebo
(Koniec)
|