Требования: HTTP теперь добавляет алгоритм сжатия Brotli для тестирования алгоритмов Gzip и Brotli. В зависимости от проекта в статье тестируется только скорость декомпрессии.
Бротли12 уровней сжатия, от 0 до 11, где 0 обеспечивает самую высокую скорость сжатия, но минимальное степень сжатия, а 11 — самое высокое, но требует больше вычислительных ресурсов и времени. Когда мы впервые реализовали Brotli 5 лет назад, мы определили, что четырёхуровневая компрессия обеспечивает баланс между экономией байтов и временем сжатия без ущерба для производительности. Чем выше уровень сжатия, тем меньше площадь, но это продаёт больше ресурсов процессора и памяти.
ASP.NET алгоритм Brotli уже встроен в ядро и не требует ссылки на сторонние пакеты. (В этой статье будет рассматриваться сторонний пакет: BrotliSharpLib и встроенный для сравнения), конфигурация выглядит следующим образом:
ASP.NET Поток вызова компрессии Brotli: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
Код перечисления уровня сжатия следующий:
Создайте новый консольный проект для .NET 6 с использованием следующего эталонного кода:
Результаты теста следующие:
Я протестировал файл на 503 КБ, и после сжатия разницы почти не было — около 400 КБ, и оказалось, что скорость декомпрессии Gzip всё ещё выше, чем у Brotli, которая должна быть такой жеРазмер файла, . NET-версия, уровень сжатия, содержимое файла и так далееКороче говоря, лучше выбрать ту сцену, которая вам подходит.
Если вы столкнётесь с такой ошибкой:
Окружающая среда Резюме -> Обнаружен код выхода ошибки из одного из бенчмарков. Это может быть вызвано следующим антивирусным ПО: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Windows Defender (windowsdefender://) Используйте InProcessEmitToolchain или InProcessNoEmitToolchain, чтобы избежать создания новых процессов. решение
или
(Конец)
|