Cerințe: HTTP adaugă acum un algoritm de compresie Brotli pentru a testa algoritmii Gzip și Brotli. În funcție de proiect, în articol este testată doar viteza de decompresie.
Brotli are12 niveluri de compresie, de la 0 la 11, unde 0 oferă cea mai rapidă viteză de compresie, dar cel mai mic raport de compresie, în timp ce 11 oferă cel mai mare raport de compresie, dar necesită mai multe resurse de calcul și timp. Când am implementat pentru prima dată Brotli acum 5 ani, am stabilit că compresia pe 4 niveluri oferă un echilibru între economisirea de octeți și timpul de compresie fără a compromite performanța. Cu cât nivelul de compresie este mai mare, cu atât amprenta este mai mică, dar vinde mai multe resurse de procesor și memorie.
ASP.NET algoritm Brotli este deja integrat în nucleu și nu necesită referire la pachete terțe. (Acest articol se va referi la pachetul terț: BrotliSharpLib și cel integrat pentru comparație), configurația este următoarea:
ASP.NET Flux principal de apeluri de compresie Brotli: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
Codul de enumerare al nivelului de compresie este următorul:
Creează un nou proiect de consolă .NET 6 cu următorul cod de benchmark:
Rezultatele testelor sunt următoarele:
Am testat un fișier de 503kb, iar după compresie nu a fost mare diferență, în jur de 400kb, și s-a dovedit că viteza de decompresie a Gzip-ului era totuși mai mare decât a lui Brotli, care ar trebui să fie aceeașiDimensiunea fișierului, . Versiunea NET, nivelul de compresie, conținutul fișierului etcPe scurt, cel mai bine este să alegi scena care ți se potrivește.
Dacă întâmpini o eroare de genul acesta:
Mediu Rezumat -> Detectat cod de ieșire de eroare dintr-unul dintre benchmark-uri. Aceasta ar putea fi cauzată de următorul software antivirus: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Windows Defender (windowsdefender://) Folosește InProcessEmitToolchain sau InProcessNoEmitToolchain pentru a evita crearea de noi procese. soluție
sau
(Sfârșit)
|