Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3487|Відповідь: 3

[Джерело] .NET 6 тестує алгоритми Gzip і Brotli

[Копіювати посилання]
Опубліковано 17.09.2023 10:45:34 | | | |
Вимоги: HTTP тепер додає алгоритм стиснення Brotli для тестування алгоритмів Gzip і Brotli. Залежно від проєкту, у статті перевіряється лише швидкість декомпресії.

Бротлі мав12 рівнів стиснення, від 0 до 11, де 0 забезпечує найвищу швидкість стиснення, але найнижчий ступінь стиснення, а 11 — найвищий ступінь стиснення, але потребує більше обчислювальних ресурсів і часу. Коли ми вперше впровадили Brotli 5 років тому, ми визначили, що чотирирівневе стиснення забезпечує баланс між економією байтів і часом стиснення без погіршення продуктивності. Чим вищий рівень стиснення, тим менший випадок, але це продає більше ресурсів процесора та пам'яті.

ASP.NET алгоритм Brotli вже вбудований у ядро і не потребує посилання на сторонні пакети. (У цій статті йдеться про сторонній пакет: BrotliSharpLib та вбудований для порівняння), конфігурація виглядає так:


ASP.NET Core Brotli компресійний потік: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.



Код для перерахування рівня стиснення виглядає так:

Створіть новий проєкт консолі .NET 6 з таким кодом бенчмарку:


Результати тесту такі:



Я протестував файл на 503kb, і після стиснення різниці майже не було — близько 400kb, і виявилося, що швидкість декомпресії Gzip все одно вища, ніж у Brotli, яка мала б бути такою жРозмір файлу, . Версія NET, рівень стиснення, вміст файлу тощоКоротко кажучи, найкраще обрати сцену, яка вам підходить.

Якщо ви зіткнулися з помилкою, подібною до ця:

Середовище
  Резюме -> Виявлено код виходу з помилки з одного з бенчмарків. Це може бути спричинено наступним антивірусним програмним забезпеченням:
        - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe)
        - Windows Defender (windowsdefender://)
Використовуйте InProcessEmitToolchain або InProcessNoEmitToolchain, щоб уникнути створення нових процесів.
рішення

або
(Кінець)





Попередній:[Поворот]. NET використовує Brotli для стиснення та декомпресії даних
Наступний:EF6 Required дозволяє порожні рядки, але не нульні
 Орендодавець| Опубліковано 17.09.2023 10:46:46 |

asp.net core 3.1 підтримує алгоритм стиснення Brotli на вебсайті
https://www.itsvse.com/thread-9532-1-1.html

.net/c# Стиснення даних GZipStream
https://www.itsvse.com/thread-4240-1-1.html




 Орендодавець| Опубліковано 17.09.2023 10:48:01 |
[Поворот]. NET використовує Brotli для стиснення та декомпресії даних
https://www.itsvse.com/thread-10662-1-1.html
 Орендодавець| Опубліковано 07.01.2025 10:18:37 |
【zip】. NET/C# використовує вбудований System.IO.Compression для стиснення та декомпресії
https://www.itsvse.com/thread-10912-1-1.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com