terça-feira, 11 de agosto de 2015

Qual o melhor comando para compactar um arquivo?

No Linux há várias ferramentas usadas para compactar arquivos. Umas compactam melhor, mas demoram mais. Outras são mais rápidas, mas usam mais o processador. Enfim, cada uma tem suas vantagens e desvantagens. Neste artigo eu analiso algumas delas.

Na análise eu compactei a pasta /etc dez vezes com cada aplicativo medindo o tempo gasto no processo. Também analisei o tamanho final do arquivo compactado. O resultado está na tabela e no gráfico abaixo.


Tecnologia Comando Tempo (s) Tamanho (mb)
Zip zip -r arquivo.zip pasta 5,62 37,00
Gzip tar zcvf arquivo.tar.gz pasta 0,75 3,30
Bzip tar jcvf arquivo.tar.bz2 pasta 2,35 3,00
Compress tar cvf arquivo.tar pasta; compress arquivo.tar 1,23 4,72
Arj arj a arquivo.arj pasta -r 9,02 36,25
Rar rar a arquivo.rar pasta 6,71 29,95


Conclusão

Para minha surpresa o formato ZIP foi o que menos compactou. Até o antigo ARJ, que usei muito na época do MS-DOS, compactou melhor. Já o ARJ foi o que mais tempo levou. Se quiser transferir arquivos para o ambiente Windows a melhor opção será usar o formato RAR. Já os formatos mais usados no Linux tiveram um desempenho nem melhor. Aqui, o BZIP foi o que melhor compactou. Em seguida foi o GZIP. O COMPRESS levou menos tempo que o BZIP, mesmo sendo necessário compactar em dois passos usando primeiro o TAR.