Empacotamento e compactação com tar

Fiz uma pequena analise na capacidade de empacotamento e compactação do comando tar, com os compactares mais usuais.

Dentre os escolhidos estão gzip, bzip, xz e o lzma.

Escopo

Para massa de teste foram escolhidos vários tipos de arquivo entre diretórios e arquivos(imagens, texto, binários, pacotes, blobs, e outros).
  • Massa total de teste: 1753627278 Bytes;
  • compactação com gzip;
  • compactação com bzip;
  • compactação com xz;
  • compactação com lzma;

Mensurar volume de dados

find dir/{buildout.d/,var/blobstorage/,var/filestorage/Data.fs,src/,etc/templates/,cache-buildout/,buildout.cfg} -ls|awk 'BEGIN{S=0}{S+=$7}END{print S}'
1753627278 Bytes;

Execução tar + gzip

tar cvzf pacote.tar.gz dir/{buildout.d/,var/blobstorage/,var/filestorage/Data.fs,src/,etc/templates/,cache-buildout/,buildout.cfg}
1109376551 Bytes;
redução de 36,73%.

Execução tar + bzip

tar cvjf pacote.tar.bz dir/{buildout.d/,var/blobstorage/,var/filestorage/Data.fs,src/,etc/templates/,cache-buildout/,buildout.cfg}
1055246457 Bytes;
redução de 39,82%.

Execução tar + xz

tar cvJf pacote.tar.xz dir/{buildout.d/,var/blobstorage/,var/filestorage/Data.fs,src/,etc/templates/,cache-buildout/,buildout.cfg}
896066404 Bytes;
redução de 48,90%.

Execução tar + lzma

tar -cv --lzma -f pacote.tar.xz dir/{buildout.d/,var/blobstorage/,var/filestorage/Data.fs,src/,etc/templates/,cache-buildout/,buildout.cfg}
896066404 Bytes;
redução de 48,90%.

Conclusão

O empacotamento com comando xz apresentou o melhor resultado com aproveitamento de 48,9% do volume total. Apesar de igualar o resultado com o lzma, apresenta uma maior facilidade de utilização.

Comentários