Benchmark de Brotli y Gzip

Benchmark de Compresión Brotli & Gzip y Calculadora de Ahorro

Analiza cargas de texto, CSS y JS con la API nativa CompressionStream, estimando ratios de compresión Brotli/Gzip y tiempos de carga en redes móviles 3G/4G.

Presets:
Perfil de Red:
Peticiones Mensuales:
Ready14.6 KB initcwndCSS
Carga Útil de Entrada (Código / Texto)2.39 KB
Algoritmo y nivel de compresiónTasa objetivo y estado TCP
Uncompressed (Raw)Baseline
2.39 KB1x
Fastest (0 ms)
Cabe en el 1.er burst TCP (≤ 14.6 KB)
Deflate (RFC 1951)Standard
839 B(-66%)2.92x
Native Stream
Cabe en el 1.er burst TCP (≤ 14.6 KB)
Gzip (RFC 1952, Level 6)Universal
856 B(-65%)2.86x
Native Stream
Cabe en el 1.er burst TCP (≤ 14.6 KB)
Brotli Dynamic (Level 5-6)Web Standard
668 B(-73%)3.66x
+18% vs Gzip(1.5ms)
Cabe en el 1.er burst TCP (≤ 14.6 KB)
Brotli Static Pre-comp (Level 11)Maximum Density
608 B(-75%)4.02x
+26% vs Gzip
Cabe en el 1.er burst TCP (≤ 14.6 KB)
Zstandard (Zstd Level 3)High Throughput
702 B(-71%)3.49x
Fastest Decompress(0.8ms)
Cabe en el 1.er burst TCP (≤ 14.6 KB)
Ventaja Brotli frente a Gzip
+8%Compresión más densa

El diccionario estático de Brotli codifica tokens HTML y CSS en 1-2 bytes en lugar de cadenas ASCII completas.

Ahorro de Tiempo en 3G
36 msAhorrado enSlow 3G

Reduce los viajes de ida y vuelta de inicio lento de TCP, acelerando First Contentful Paint (FCP).

Ahorro de Ancho de Banda
$0.18 / yr (AWS CDN)

Calculado a escala de 1M req a una tarifa estándar de salida de $0.085/GB.

Motor 100% Nativo CompressionStream

Sin envíos al servidor. Ejecución instantánea mediante la API Web Streams del navegador para medir bytes reales y latencia.

Modelos Estadísticos de Brotli y Zstandard

Evalúa redundancias frente al diccionario web integrado de 122KB de Brotli para estimar niveles dinámicos (5) y estáticos (11).

Física de Red y TCP Slow-Start

Simula la ventana de congestión inicial (initcwnd = 14.6 KB) y los ciclos RTT en conexiones celulares 3G, 4G y fibra óptica.

Referencia técnica y guía de arquitectura

Guía para Desarrolladores del Benchmark de Compresión Brotli y Gzip y Estimador de Ancho de Banda — Guía de referencia

Analiza cargas de texto, CSS y JS con la API nativa CompressionStream, estimando ratios de compresión Brotli/Gzip y tiempos de carga en redes móviles 3G/4G.

Parámetros clave y controles

Entrada de Carga (Payload Input)String | File Buffer

Texto sin formato, paquetes JavaScript, hojas de estilo CSS, JSON o código HTML de origen para comprimir y evaluar.

Por defecto: Paquete de muestra JavaScript / CSS
Algoritmo de Compresión ObjetivoEnum (Brotli | Gzip | Both)

Algoritmo evaluado en el benchmark. Brotli (RFC 7932) cuenta con diccionarios estáticos integrados para activos web, mientras que Gzip (RFC 1952 DEFLATE) brinda compatibilidad universal.

Por defecto: Both (Comparativo)
Nivel de Calidad de CompresiónInteger (Gzip: 1-9 | Brotli: 0-11)

Ajuste de equilibrio entre uso de ciclos de CPU y tasa de compresión en bytes. Los niveles moderados son idóneos para streaming dinámico; los niveles máximos (Brotli 11, Gzip 9) optimizan artefactos estáticos en CDN.

Por defecto: Brotli 6 / Gzip 6 (dinámico) | Brotli 11 (estático)
Perfil de Simulación de RedEnum (Slow 3G | Fast 3G | 4G LTE | Broadband)

Condición de limitación de red configurada con parámetros específicos de latencia RTT y rendimiento para calcular el TTFB y el tiempo total de transferencia.

Por defecto: Fast 3G (1.6 Mbps, 150ms RTT)

Consejos profesionales y mejores prácticas

Precomprime los activos JavaScript

Precomprime los activos JavaScript, CSS y SVG durante el paso de compilación CI/CD usando Brotli nivel 11 y Gzip nivel 9 (o Zopfli). Al servirlos con Nginx mediante brotli_static on;, obtendrás el máximo ahorro sin sobrecargar la CPU en producción.

Los archivos de menos de 1 KB pueden

Los archivos de menos de 1 KB pueden aumentar de tamaño tras ser comprimidos debido a la sobrecarga de cabeceras y metadatos de Brotli/Gzip. Configura tu servidor web con directivas como gzip_min_length 1024; y brotli_min_length 1024;.

Asegúrate de que proxies inversos y

Asegúrate de que proxies inversos y CDN respeten la cabecera Vary: Accept-Encoding. De lo contrario, clientes sin soporte para Brotli podrían recibir archivos binarios con Content-Encoding: br almacenados en caché por error.

Desactiva la compresión HTTP en

Desactiva la compresión HTTP en respuestas dinámicas que reflejen entradas del usuario junto con datos secretos (como tokens CSRF), o aísla los tokens en cookies no comprimidas o peticiones secundarias.

Errores comunes y solución de problemas

El archivo comprimido resulta más grande que el archivo original sin comprimir

Los archivos de menos de 1 KB o los formatos ya comprimidos (JPEG, PNG, WOFF2) carecen de patrones redundantes. El encabezado de compresión supera el ahorro obtenido. Establece un umbral mínimo de longitud (ej. 1024 bytes) y excluye tipos MIME binarios.

El navegador descarga un archivo binario o muestra caracteres extraños en vez de ejecutar el código

El servidor web envió datos comprimidos pero omitió la cabecera de respuesta Content-Encoding: br o Content-Encoding: gzip. Revisa la configuración de origen y de intermediarios de tu CDN o proxy inverso.

Consumo excesivo de CPU y picos de latencia en el servidor ante tráfico elevado

Comprimir dinámicamente en tiempo real con niveles extremos (Brotli 10-11 o Gzip 9) satura los núcleos del servidor. Limita la compresión dinámica a Brotli 4-5 o Gzip 5-6, y delega los archivos estáticos a la precompresión en tu canal de CI/CD.

Preguntas frecuentes (FAQ)

¿Por qué Brotli comprime activos web notablemente mejor que Gzip?▼

Brotli utiliza una ventana deslizante de hasta 16 MB (frente a los 32 KB del algoritmo DEFLATE de Gzip) e incorpora un diccionario estático predeterminado con más de 120.000 palabras y patrones web comunes. Esto le permite obtener entre un 15% y un 25% más de densidad de compresión en archivos de texto web.

¿Se puede utilizar Brotli en navegadores modernos sobre HTTP sin cifrar?▼

No. Los principales navegadores (Chrome, Firefox, Safari, Edge) exigen conexiones HTTPS para admitir Brotli (Content-Encoding: br), con el fin de evitar que proxies transparentes obsoletos corrompan flujos binarios desconocidos en el puerto 80.

¿Qué nivel de compresión se debe elegir para contenido dinámico frente a estático?▼

Para recursos estáticos generados en CI/CD, utiliza Brotli nivel 11 (--best) o Gzip nivel 9/Zopfli, ya que el costo computacional se asume una sola vez. Para respuestas API dinámicas generadas en tiempo real, usa Brotli nivel 4 o Gzip nivel 5 para equilibrar la latencia de respuesta y el gasto de CPU.

¿De qué forma beneficia la compresión a las métricas Core Web Vitals (CWV)?▼

Al disminuir los bytes transferidos en la ruta crítica de renderizado, se reducen los ciclos de ida y vuelta (RTT) asociados al inicio lento de TCP (slow-start) en redes móviles, acelerando directamente First Contentful Paint (FCP) y Largest Contentful Paint (LCP).

¿Se deben comprimir con Brotli o Gzip formatos multimedia como WebP, AVIF o MP4?▼

No. Formatos modernos como WebP, AVIF y MP4 ya cuentan con codificación entrópica especializada. Comprimirlos con Gzip o Brotli desperdicia recursos del servidor, añade latencia innecesaria y con frecuencia incrementa el tamaño final del archivo.

Herramientas y utilidades relacionadas

Todas las herramientas →