Requisitos: HTTP ahora añade un algoritmo de compresión Brotli para probar los algoritmos Gzip y Brotli. Dependiendo del proyecto, solo se prueba la velocidad de descompresión en el artículo.
Brotli tiene12 niveles de compresión, de 0 a 11, donde 0 proporciona la velocidad de compresión más rápida pero la relación de compresión más baja, mientras que 11 proporciona la mayor relación de compresión pero requiere más recursos y tiempo de cálculo. Cuando implementamos Brotli por primera vez hace 5 años, determinamos que la compresión a 4 niveles proporcionaba un equilibrio entre el ahorro de bytes y el tiempo de compresión sin comprometer el rendimiento. Cuanto mayor es el nivel de compresión, menor es el espacio, pero vende más recursos de CPU y memoria.
ASP.NET algoritmo Brotli ya está integrado en el núcleo y no requiere referencia a paquetes de terceros. (Este artículo se referirá al paquete de terceros: BrotliSharpLib y al integrado para comparación), la configuración es la siguiente:
ASP.NET Flujo principal de llamadas de compresión Brotli: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
El código de enumeración del nivel de compresión es el siguiente:
Crea un nuevo proyecto de consola .NET 6 con el siguiente código de benchmark:
Los resultados de las pruebas son los siguientes:
Probé un archivo de 503kb y, tras la compresión, no hubo mucha diferencia, en total unos 400kb, y resultó que la velocidad de descompresión de Gzip seguía siendo más rápida que la de Brotli, que debería ser la mismaTamaño del archivo, . Versión de la NET, nivel de compresión, contenido de archivos, etcEn resumen, lo mejor es elegir la escena que se adapte a ti.
Si te encuentras con un error así:
Medio ambiente Resumen -> Código de salida de error detectado en uno de los benchmarks. Podría ser causado por el siguiente software antivirus: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Windows Defender (windowsdefender://) Utiliza InProcessEmitToolchain o InProcessNoEmitToolchain para evitar la creación de nuevos procesos. solución
o
(Fin)
|