Gzipping imagens vale a pena para uma pequena redução de tamanho, mas sobrecarga de compressão e descompressão?

38

A maioria dos formatos de imagem já está compactada. Mas, de fato, se eu tirar uma imagem e compactá-la (compactá-la), e então comparo a compactada com a descompactada, há uma diferença de tamanho, mesmo que não seja uma diferença tão dramática.

A questão é: vale a pena compactar imagens? o tamanho do conteúdo liberado no navegador do cliente será menor, mas haverá uma sobrecarga do cliente ao descompactá-lo.

Stephen Ostermiller
fonte
2
Se o gargalo do servidor estiver mais próximo na rede do que na CPU, com certeza. Senão, pode haver frutas mais baixas.
precisa saber é o seguinte

Respostas:

30

O Google faz referência a gzip e arquivos de imagem / binários em Minimizar tamanho da carga útil

Não use gzip para imagem ou outros arquivos binários.

Os formatos de arquivo de imagem suportados pela web, bem como vídeos, PDFs e outros formatos binários, já estão compactados; o uso do gzip neles não trará nenhum benefício adicional e poderá aumentá-los. Para compactar imagens, consulte Otimizar imagens .

John Sampson
fonte
favicon.ico é uma exceção que vale a pena mencionar. As imagens ICO não são compactadas, portanto, o gzip executa muito bem nelas.
um gato
8

Isso dependeria do que é mais importante, recursos de descompactação do cliente (tempo, poder de processamento, memória etc.) ou largura de banda da rede.

Exemplo 1) Os sistemas do cliente estão muito próximos do servidor (por exemplo, em uma rede local) ou possuem conexões de alta velocidade; no entanto, eles são de baixa potência (talvez sistemas embarcados com recursos limitados). Você NÃO desejaria nenhuma sobrecarga do lado do cliente (descompactar) e poderia facilmente suportar a sobrecarga da transferência (alguns bytes não fazem diferença no mundo real em uma rede local).

Exemplo 2) Seus clientes são todos sistemas de alta potência (por exemplo, estações de trabalho de escritório acima da média), no entanto, existem milhares deles e seu servidor possui apenas uma alocação de largura de banda limitada. Nesse cenário, os usuários finais podem facilmente pagar a sobrecarga e cada byte é importante para o servidor. gzip away!

Mundo Real) É provável que você NÃO esteja em melhor forma de compactar suas imagens. No entanto, os sistemas modernos podem permitir o processamento, se você tiver expectativas do mundo real, alguém usará um telefone celular ou outro sistema de baixa potência. Além disso, você está impondo a restrição de que o receptor possa descompactar o zip. Não deveria ser um problema na maioria das vezes, mas por que limitar alguém? A economia de tamanho será trivial e a sobrecarga de processamento não será para nenhum sistema. Quanto maior a economia de tamanho, você deve esperar uma sobrecarga ainda maior do processador, para que, sempre que você economizar na transferência por qualquer tipo de conexão normal, seja possível recriar apenas o tempo necessário para processar o gzip em algo utilizável.

Sua melhor aposta na IMO é procurar uma otimização mais alta e formatos de imagem alternativos. Nem todos os JPEGs são criados iguais. Exemplo: salve uma imagem como jpeg no photoshop e, em seguida, "salve para web e dispositivos" como jpeg, o tamanho do arquivo deve ser drasticamente diferente com as mesmas configurações de qualidade. Além disso, a opção "salvar para" fornece muito mais opções para a qualidade do ajuste fino e o tamanho do arquivo. Não tenha medo de formatos mais "datados", como GIFs também. Se sua imagem for exibida bem dentro das limitações do formato GIF, é provável que ela seja muito menor ainda e ofereça benefícios extras como transparência ...


fonte
Obrigado pela sua resposta detalhada. O cenário de que estou falando é um cenário que envolve milhões de imagens existentes, parcialmente otimizadas, em um site de comércio eletrônico. Portanto, fica claro que a prioridade mais alta é a renderização rápida no lado do cliente e que as máquinas dos clientes têm potência média e menor. Salvar em um formato diferente não é uma opção [grande investimento]. A melhor solução seria, em um caso como esse [tantas imagens existentes], ter uma ferramenta que otimizasse todos os arquivos jpeg em uma pasta. Você conhece essa ferramenta?
Há um utilitário de linha de comando gratuito chamado jpegtran que otimiza JPEGs; ele pode processar todas as imagens em uma pasta em lote, para que valha a pena investigar.
Tim Fountain
7

Não, na verdade isso poderia piorar as coisas. Das práticas recomendadas do Yahoo para acelerar o seu site :

Os arquivos de imagem e PDF não devem ser compactados com o compactador porque eles já estão compactados. Tentar compactá-los não apenas desperdiça a CPU, mas pode potencialmente aumentar o tamanho dos arquivos.

nthonygreen
fonte