Developer Toolbox

Brotli

Mira qué hace Brotli más allá de gzip: un diccionario integrado de palabras comunes, una ventana mayor y niveles de calidad que cambian tiempo por tamaño.

  • Ventana: hasta 16 MB
  • Diccionario: 122 KB
  • Calidad: 0-11
  • Códigos según el contexto
¿Qué significan estos términos?
  • Diccionario integrado: unas 13.500 palabras que conoce todo decodificador Brotli, de modo que el codificador puede referirse a una por su número.
  • Calidad: el nivel de esfuerzo de Brotli, de 0 a 11. Los niveles altos buscan más a fondo para ganar unos pocos puntos porcentuales, a un coste muchas veces mayor.
  • Modelado de contexto: elegir la tabla de códigos según lo que vino justo antes, ya que tras una letra suelen venir caracteres distintos que tras una cifra o un espacio.
  • Ventana: hasta dónde puede mirar hacia atrás el compresor en busca de una repetición. 32 KB en gzip, hasta 16 MB en Brotli.

Palabras del diccionario de Brotli

Pega cualquier texto. Se marcan las palabras que contiene el diccionario de Brotli, y las barras comparan los primeros 300 bytes, donde el diccionario más importa, con el texto entero.

Entrada

Cargando...

Prueba esto: Carga una página HTML corta. Con unos cientos de bytes, el diccionario decide el resultado y Brotli saca mucha ventaja a gzip.

Calidad, tamaño y tiempo

El mismo texto en cada calidad. Hasta 4-6 el tamaño baja rápido y el tiempo apenas se mueve; 10 y 11 ganan unos pocos puntos porcentuales más a cambio de muchas veces más trabajo.

Cargando...

En qué se diferencia de gzip

Una ventana de hasta 16 MB

gzip solo copia de los últimos 32 KB. Brotli llega mucho más lejos, así que en un archivo grande encuentra repeticiones que gzip ya no ve.

Códigos que dependen del contexto

El mismo carácter puede recibir un código distinto según los dos bytes que lo preceden. Tras una letra son probables caracteres distintos que tras una cifra o un espacio.

Un diccionario desde el principio

gzip tiene que escribir la primera aparición de cada palabra como literales. Brotli puede remitir a su diccionario integrado, y por eso gana más en archivos pequeños.

Cómo funciona

Brotli usa las mismas dos ideas que gzip, copias de texto anterior y códigos Huffman, y añade tres. Su ventana llega a 16 MB en lugar de 32 KB, así que encuentra repeticiones muy atrás en un archivo grande. Sus códigos dependen del contexto de los bytes anteriores. Y trae un diccionario de unas 13.500 palabras comunes en páginas web y código, así que incluso la primera aparición de una palabra como class o function puede ser una referencia corta.

Cuándo es una buena opción

Brotli deja el texto entre un 15-25% más pequeño que gzip, sobre todo en archivos pequeños, donde el diccionario hace el trabajo. Todos los navegadores actuales lo aceptan por HTTPS. Comprime los archivos estáticos de antemano con calidad 11 y las respuestas dinámicas al vuelo con 4-6, donde es más o menos tan rápido como gzip.