Certa vez, li em algum lugar que leva mais tempo para baixar um arquivo compactado do que um arquivo descompactado do mesmo tamanho, devido à natureza do arquivo zip.
Isso é verdade ou bobagem?
edit: estou falando sobre tráfego HTTP
Certa vez, li em algum lugar que leva mais tempo para baixar um arquivo compactado do que um arquivo descompactado do mesmo tamanho, devido à natureza do arquivo zip.
Isso é verdade ou bobagem?
edit: estou falando sobre tráfego HTTP
Respostas:
Quando a conexão estiver usando compactação , é claro.
Você não pode compactar dados com eficiência duas vezes. Portanto, quando a compactação estiver ativada, um arquivo zip de 1 MB será transferido mais lentamente que um arquivo txt de 1 MB.
Nota: isso depende do protocolo de transferência. FTP ou outros protocolos não possuem compactação incorporada. HTTP tem.
Não é verdade se você estiver baixando via FTP ou HTTP padrão. Para outros tipos de conexão, consulte a resposta de Christopher .
Supondo a mesma conexão, a velocidade do download é determinada pelo tamanho do arquivo.
Pode haver um atraso no final do download se a verificação automática de vírus estiver ativada, pois será necessário abrir e descompactar o arquivo zip para verificar o conteúdo, em vez de poder verificar o arquivo diretamente.
Se você usar uma conexão PPP (dial-up ou VPN) com compactação, os arquivos compactados poderão ser baixados com menor velocidade do que os arquivos de texto devido à sua natureza (os primeiros já estão compactados e os segundos serão compactados pelo protocolo, aumentando a velocidade medida) .
Mas se você comparar quantidades de informações recebidas, o download de arquivos compactados ainda será mais eficiente, pois qualquer arquivador de arquivos é geralmente superior à compactação da camada de link. Portanto, um arquivo de texto compactado será baixado mais rapidamente do que o mesmo arquivo de texto, mesmo que a compactação aumente um pouco a velocidade do download.
Como já mencionado, o tráfego HTTP pode ser compactado, mas nem sempre é.
Você pode ter lido isso em um momento em que as pessoas usavam modems por telefone em vez de modems adsl / cable. Nessa situação, o texto foi compactado antes de enviar ou receber, portanto, seu arquivo de texto seria enviado mais rapidamente.
Não tenho certeza se isso está relacionado ou não, mas se você baixar um arquivo compactado (compactado sem compactação), é mais rápido do que baixar o mesmo pacote que vários arquivos (descompactados), devido à sobrecarga de solicitação HTTP necessária antes de iniciar o download de cada arquivo individual.
Resposta prática: o objetivo de compactar seus arquivos é facilitar o compartilhamento (iedownload) com outras pessoas. O compactamento funciona por compactação, o que significa "encolher arquivos" em inglês comum.
O software de computador não é perfeito e pode haver casos extremos estranhos nos quais compactar um arquivo o tornaria um pouco maior e mais difícil de compartilhar. Encontrar esses casos extremos onde o zíper falha provavelmente o aborrecerá e não valerá a pena.
Resposta hipotética: É muito complicado. A resposta dependeria do programa zip, protocolos de transmissão, tamanho do arquivo, tipo de arquivo, talvez até o tipo de navegador ou software antivírus em execução no computador cliente. Em outras palavras, "depende".
A resposta é realmente "depende": Dependendo do formato que o servidor da Web escolhe para enviar o arquivo.
Se o servidor gerar a resposta com bytes binários no estado em que se encontram, os arquivos compactados e descompactados de tamanho igual serão baixados na mesma velocidade.
Se o servidor gerar uma resposta na codificação Base64, aumentará o número de bytes e o arquivo compactado levará mais tempo para baixar. A maioria dos servidores web modernos não faz mais isso, embora isso tenha sido bastante prevalente há alguns anos atrás.
Para explicar, o formato base64 é um fluxo de caracteres exibíveis de 6 bits. Isso significa, por exemplo, que 6 bytes binários, que são 6 * 8 = 48 bits, são codificados como 48/6 = 8 caracteres. Em geral, para n bytes binários, o número de caracteres base64 enviados é (n * 8) / 6. Portanto, o envio de n bytes binários é mais lento do que o envio de n bytes de texto em 33% (8 dividido por 6), porque mais caracteres são enviadas.