Wymagania: HTTP teraz dodaje algorytm kompresji Brotli do testowania algorytmów Gzip i Brotli. W zależności od projektu, w artykule testowana jest tylko prędkość dekompresji.
Brumli ma12 poziomów kompresji, od 0 do 11, gdzie 0 zapewnia najszybszą prędkość kompresji, ale najniższy stopień kompresji, natomiast 11 zapewnia najwyższy współczynnik kompresji, ale wymaga więcej zasobów obliczeniowych i czasu. Kiedy po raz pierwszy wdrożyliśmy Brotli 5 lat temu, ustaliliśmy, że kompresja czteropoziomowa zapewnia równowagę między oszczędnością bajtu a czasem kompresji bez kompromisu w wydajności. Im wyższy poziom kompresji, tym mniejszy rozmiar, ale sprzedaje więcej zasobów CPU i pamięci.
ASP.NET algorytm Brotli jest już wbudowany w rdzeń i nie wymaga odwoływania się do pakietów firm trzecich. (W tym artykule odniesiemy do pakietu firm trzecich: BrotliSharpLib oraz wbudowanego dla porównania), konfiguracja wygląda następująco:
ASP.NET Przepływ wywołań kompresji w Core Brotli: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
Kod enumeracji poziomu kompresji wygląda następująco:
Stwórz nowy projekt konsoli .NET 6 z następującym kodem benchmarkowym:
Wyniki testów są następujące:
Przetestowałem plik 503kb i po kompresji różnica była niewielka, wszystko około 400kb, i okazało się, że szybkość dekompresji w Gzip nadal była szybsza niż w Brotli, co powinno być takie samorozmiar pliku, . Wersja NET, poziom kompresji, zawartość plików itdKrótko mówiąc, najlepiej wybrać scenę, która do Ciebie pasuje.
Jeśli napotkasz taki błąd:
Środowisko Podsumowanie -> Wykryto kod wyjścia błędu z jednego z benchmarków. Może być spowodowana przez następujące oprogramowanie antywirusowe: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Windows Defender (windowsdefender://) Użyj InProcessEmitToolchain lub InProcessNoEmitToolchain, aby uniknąć tworzenia nowych procesów. rozwiązanie
lub
(Koniec)
|