O que é mais rápido, cp -R ou descompactar arquivos tar.gz?

O que é mais rápido, cp -R ou descompactar arquivos tar.gz?

Eu tenho alguns arquivos tar.gz que totalizam muitos gigabytes em um sistema CentOS. A maioria dos arquivos tar.gz são bem pequenos, mas aqueles com imagens são grandes. Um é 7,7G, outro é cerca de 4G e alguns cerca de 1G.

Já descompactei os arquivos uma vez e agora quero uma segunda cópia de todos esses arquivos.

Presumi que copiar os arquivos descompactados seria mais rápido do que descompactá-los novamente. Mas comecei a executar cp -R há cerca de 10 minutos e até agora menos de 500M foram copiados. Tenho certeza de que o processo de descompactação foi mais rápido.

Estou certo?

E se sim, por quê? Não parece fazer sentido que a descompactação seja mais rápida do que simplesmente duplicar estruturas existentes.

Responder1

Considere os dois cenários:

  • A cópia requer que você leia o arquivo completo do disco e grave-o no disco
  • Tar-Gzip requer que você leia um arquivo menor do disco, descompacte e grave-o no disco.

Se sua CPU não estiver sendo sobrecarregada pelo processo de descompactação, é lógico que as operações de E/S sejam limitantes. Por esse argumento (e como você deve escrever a mesma quantidade em ambos os casos), a leitura de um arquivo menor (o tar.gz) leva menos tempo do que a leitura de um arquivo maior. Além disso, economiza-se tempo porque é mais rápido ler um único arquivo do que ler muitos arquivos pequenos.

O tempo economizado depende da diferença entre o tempo necessário para leitura (E/S) e descompactação (CPU). Portanto, para arquivos minimamente compressíveis (por exemplo, arquivos já compactados como mp3, jpg, zip, etc.), onde o tempo necessário para descompactação provavelmente será maior que o tempo economizado na operação de leitura, será de fato mais lento para descompactar do que para copiar.

(Vale a pena notar que quanto mais lenta a E/S, mais tempo será economizado usando o arquivo compactado - um desses cenários seria se a origem e o destino da operação de cópia estivessem no mesmo disco físico.)

Responder2

Ler um arquivo muito pequeno é muito mais rápido do que ler vários arquivos grandes. Isso geralmente é verdade mesmo que a CPU precise descompactá-lo.

informação relacionada