zstd vs gzip: Compressão mais rápida de cache e artefatos no CI
zstd (Zstandard) geralmente oferece melhor velocidade e taxa de compressão do que gzip em configurações comparáveis; gzip é mais antigo e está disponível literalmente em todos os lugares.
A compressão afeta diretamente o tempo de save/restore de cache e de upload de artefatos no CI. zstd é um algoritmo moderno com forte equilíbrio velocidade/taxa e níveis ajustáveis; gzip (DEFLATE) é o baseline universal que toda ferramenta entende.
| zstd | gzip | |
|---|---|---|
| Velocidade | Mais rápido em taxas comparáveis | Baseline |
| Taxa de compressão | Geralmente melhor, níveis ajustáveis | Razoável, ajuste limitado |
| Ubiquidade | Amplamente disponível, às vezes precisa instalar | Em todo lugar por padrão |
| Níveis | Ampla faixa (incl. muito rápido) | Faixa estreita |
| Uso típico no CI | Compressão de cache/artefato | Fallback universal |
Onde o zstd vence
Para caches e artefatos grandes de CI, zstd normalmente comprime e descomprime mais rápido que gzip enquanto alcança uma taxa similar ou melhor, cortando o tempo de save/restore do cache. Sua ampla faixa de níveis permite trocar velocidade por tamanho. O ferramental moderno de cache do GitHub Actions já favorece zstd quando disponível.
Onde o gzip vence
gzip está presente em essencialmente todos os sistemas e é entendido por toda ferramenta e runtime de linguagem, então é o default seguro quando você não pode garantir que zstd está instalado ou quando um consumidor downstream só aceita gzip. Para payloads pequenos a diferença é desprezível.
No CI
Prefira zstd para caches e artefatos grandes onde o tempo de save/restore importa; o cache oficial do Actions usa zstd automaticamente quando presente e faz fallback para gzip caso contrário. Use gzip quando a universalidade ou um formato downstream fixo exigir.
O veredito
Use zstd para caches e artefatos grandes de CI para cortar o tempo de compressão; recorra ao gzip para compatibilidade universal ou payloads minúsculos. Para a maioria dos caches de pipeline, zstd é o default mais rápido.