Leva mais tempo para baixar um arquivo compactado do que um arquivo descompactado?
13
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.
Você está falando de dois arquivos do mesmo tamanho, um zipado e outro descompactado (por exemplo, cada 1 MB), ou o mesmo arquivo compactado e descompactado (por exemplo, 1 MB e 345 KB)?
Toby Allen
Você deve considerar a taxa de download, não o tempo. Nos dois casos, a taxa é a mesma ... no final, você baixou um número limitado de bytes em um determinado período de tempo. Como Toby sugere, o download de arquivos compactados gera mais dados descompactados no final, o que aumenta efetivamente sua taxa de download descompactado.
KFro
Respostas:
21
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.
Geralmente apenas um pouco. Você não deve compactar mp3, jpg ou zips.
Rich Bradshaw
1
É configurável para quais tipos compactar. Portanto, cabe ao administrador do servidor da Web primeiro ativar a compactação e depois desabilitar a compactação para tipos conhecidos.
Christopher
Transferirá mais devagar (mais devagar sobre o canal) ou levará mais tempo para fazer o download porque o servidor gravou ciclos novamente ao fechar (mais devagar para o canal)? Um ponto difícil porque o resultado final ainda é um download mais lento.
MrChrister 23/09/09
3
Não se trata de quanto tempo leva para compactar / descompactar os dados, porque na maioria dos casos a conexão é um gargalo. A compactação http é feita nas transferências e não no próprio arquivo, portanto, a latência é aumentada apenas pela latência de compactação da transferência e não pelo arquivo inteiro. Não há realmente nenhuma desvantagem em ativar a compactação http, além do uso muito alto da CPU no servidor. Por outro lado, todos os administradores de servidor devem desativar a compactação para transferências de tipos de arquivos que não são compactados muito bem.
Christopher
11
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.
Não se a compactação for usada no canal (consulte a resposta de @ Christopher).
fretje
2
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.
você deve notar que não há diferença no protocolo HTTP, porque no servidor e no roteador eles usam o GZIP para compactar o pacote e, em seguida, enviam o mesmo se você compactar ou não, eles agem da mesma maneira.
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.
Alguns de nós ainda usam modems telefônicos para acessar a Internet. :-)
Brian Knoblauch
0
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.
Isso vale para mensagens de email, mas não é válido para todos os outros protocolos.
Brian Knoblauch
Isso vale para http, que era a questão. http de download usa a codificação multi-parte em base64
harrymc
1
Estou meio que duvidando disso, você tem alguma referência para fazer o backup?
hasen
1
Não, o http geralmente não codifica base64 arquivos binários. Há um tipo MIME para declarar esse caso, mas geralmente é usado apenas para email quando há uma expectativa de que o "pacote" (a mensagem de email) em algum momento passe por uma conexão que não esteja limpa de 8 bits. O protocolo TCP / IP no qual o HTTP se encontra é garantido como limpo de 8 bits e o conteúdo de codificação MIME desperdiçaria apenas largura de banda.
RBerteig 23/09/09
1
O servidor que envia o arquivo pode escolher entre vários formatos. Minha resposta foi relacionada a uma pesquisa que fiz há cerca de 5 anos. Naquela época, muitos sites estavam gerando respostas de várias partes de download com a Content-Transfer-Encoding (diferente do tipo MIME). De acordo com uma verificação rápida, esse não é mais o caso e, de fato, as RFCs mais recentes aconselham a não usar o Content-Transfer-Encoding nas respostas http. Portanto, acredito que a resposta real ao OP é: o cálculo acima costumava ser o caso de alguns sites no passado, mas agora é bastante raro. No entanto, não é um mito urbano.
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.
fonte
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.
fonte
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.
fonte
você deve notar que não há diferença no protocolo HTTP, porque no servidor e no roteador eles usam o GZIP para compactar o pacote e, em seguida, enviam o mesmo se você compactar ou não, eles agem da mesma maneira.
fonte
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.
fonte
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.
fonte
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".
fonte
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.
fonte