FreeToGenerate.com

Cuatro formatos, medidos en tu propio navegador, incluido el que sirve de verdad tu CDN.

Algo que comprimir

El archivo se lee en tu navegador y se comprime ahí. No se sube nada, y por eso tampoco hay más límite de tamaño que el que aguante tu propia máquina.

Tamaños comprimidos

brotli
Lo que sirven de verdad casi todas las CDN. En HTTP se escribe br dentro de Accept-Encoding, pero aquí el nombre del formato es brotli: br no es válido y lanza un error.
deflate
Datos deflate dentro de una envoltura zlib, que cuesta 8 bytes aunque no haya nada que comprimir.
deflate-raw
Los mismos datos deflate sin envoltura alguna: 2 bytes de sobrecarga y ninguna suma de verificación.
gzip
El que informan todos los medidores. Su contenedor cuesta 20 bytes, el más caro de los cuatro.

La compresión la hace tu propio navegador mediante el estándar Compression Streams, que define exactamente cuatro formatos y permite a una implementación rechazar cualquiera de ellos.

También disponible en: English · Português · Français · العربية

Calcular tamaño gzip: gzip, brotli y deflate

Pega lo que sea y mira su tamaño comprimido en todos los formatos que tu navegador sepa producir, con la cifra de gzip puesta en su sitio.

¿Qué es el tamaño gzip?

El tamaño gzip es en cuántos bytes se queda un archivo después de comprimirlo: la cifra que cruza de verdad la red, frente a la que ocupa en disco. Es la unidad en la que se escriben los presupuestos de rendimiento, porque un paquete de JavaScript de 300 KB que comprime a 80 KB le cuesta 80 KB a quien visita la página.

La compresión funciona encontrando repeticiones. Por eso el mismo truco da resultados tan distintos según el contenido: el marcado y el JSON se repiten sin parar y encogen muchísimo, mientras que la prosa se repite bastante menos y encoge poco. Una imagen o un zip ya tienen la repetición quitada y apenas se moverán.

Esta página comprime lo que le des en todos los formatos que admita tu navegador y enseña los tamaños uno al lado del otro. Todo ocurre en el navegador, así que nada de lo que pegues o elijas sale de tu máquina.

Cómo usarla

  1. Pega texto o elige un archivo. Cualquiera de las dos cosas vale. El archivo se lee localmente y nunca se sube, así que su tamaño solo lo limita lo que aguante tu propia máquina.
  2. Lee los tamaños de cada formato. Cada fila da el tamaño comprimido, el ratio frente al original y los bytes ahorrados. El más pequeño va marcado.
  3. Fíjate en lo que tu navegador rechazó. La línea de debajo de la tabla nombra cualquier formato que tu navegador no haya querido producir, porque el estándar permite que una implementación admita menos de los cuatro.

La cifra de gzip no es la que se envía

Casi todos los medidores informan de gzip y ahí se quedan. Mientras tanto, la CDN que hay delante de un sitio moderno suele estar sirviendo brotli, que es otro algoritmo con otro resultado, y sistemáticamente más pequeño.

Medido sobre los propios archivos fuente de este sitio, brotli salió entre un 16% y un 28% más pequeño que gzip. Eso no es una diferencia de redondeo. Si tu presupuesto dice 100 KB comprimidos y tu CDN sirve brotli, llevas midiendo algo que no envías, y siendo pesimista al respecto en una quinta parte.

El estándar Compression Streams que implementan los navegadores define exactamente cuatro formatos: brotli, deflate, deflate-raw y gzip. Hay una trampa en los nombres, porque HTTP no usa esas palabras: en una cabecera Accept-Encoding brotli se escribe br, y pedirle a un navegador br en vez de brotli lanza un error en lugar de comprimir nada.

Comprimir puede hacer un archivo más grande

Todos los formatos envuelven su salida en un contenedor, y el contenedor tiene un coste fijo. Comprimir absolutamente nada —una entrada vacía— sigue produciendo 20 bytes de gzip, 8 de deflate, 2 de deflate-raw y 1 de brotli. Ese es el suelo por debajo de cada medición de esta página.

Con una entrada que no comprime, el coste es pequeño pero real. Dale a la familia deflate unos bytes sin patrón alguno y la salida sale 23 bytes más grande que la entrada, más otros 5 por cada bloque de 64 KB a partir del primero; brotli hace el mismo trabajo por 4. Por eso comprimir un archivo ya comprimido es tirar el tiempo, y por eso un servidor que aplica gzip a un JPEG está empeorando ligeramente la respuesta en vez de mejorarla.

La consecuencia práctica está en las respuestas pequeñas. Una respuesta JSON de 200 bytes es justo el caso en el que el contenedor puede costar más de lo que ahorra la compresión, y la herramienta te enseñará un ahorro negativo cuando eso pase, en vez de esconderlo.

Lo que esta página no puede decirte

No puede decirte los bytes exactos que enviará tu servidor. La compresión tiene niveles de esfuerzo y el compresor del navegador no expone ninguno: te llevas lo que decida la implementación, mientras que una CDN puede estar ajustada más fuerte o más floja. Dos implementaciones correctas del mismo formato producen legítimamente tamaños distintos para la misma entrada.

También mide un archivo cada vez y de forma aislada. Los tamaños de transferencia reales dependen de si una respuesta llega a comprimirse por debajo de cierto umbral, del propio entramado de la conexión y, con muchos recursos pequeños, de si antes se agruparon: varios archivos comprimidos como uno casi siempre ganan a los mismos archivos comprimidos por separado, porque la repetición entre ellos pasa a estar disponible.

Y la lista de formatos es la que admita tu navegador hoy. La línea de debajo de la tabla lo informa en vez de darlo por hecho, porque el estándar permite explícitamente que una implementación rechace un formato, y los navegadores lo hacen.

¿Por qué es gratis?

La compresión la hace una API que tu navegador ya tiene. Nada de lo que pegas o eliges se sube, no se registra nada y no hay cuenta que crear.

Sin registro, sin límites y sin marca de agua en nada de lo que copies.