O que é mais rápido, copiando tudo de uma vez ou uma coisa de cada vez?


16

Estou transferindo um monte (20+) de arquivos grandes (1GB +) para minha unidade flash externa através do USB 2.0. É mais rápido separá-los de uma só vez (como um de cada vez, mas sem esperar a transferência anterior terminar) para que haja várias transferências em andamento, ou transfira uma, aguarde a conclusão, transfira a próxima . Os arquivos são provenientes de vários locais, por isso não posso fazer uma única grande transferência.

Existem outras vantagens de uma maneira ou de outra que valem a pena considerar?


Quanto custa um "Bunch"
Moab

20+, pergunta atualizada.
Fredley

6
Existem algumas respostas teóricas muito interessantes aqui, mas eu adoraria ver alguns dados reais. Como podemos configurar um teste confiável?
Pops

Respostas:


19

Se todos forem provenientes de diferentes discos físicos, mas estiverem sendo gravados em uma unidade de estado sólido (flash, SSD), você poderá copiá-los simultaneamente.

O movimento físico da cabeça (latência) é o que retardará a transferência de um disco giratório. Se você estivesse copiando de um único HDD, iniciaria uma única grande transferência em vez de muitas pequenas. A alternância entre dois ou mais arquivos que estão sendo copiados é o que atrasa a transferência. É claro que você obteria o mesmo efeito se o HDD estivesse muito fragmentado, mesmo se você estivesse copiando um único arquivo.

Se estivesse entre unidades de estado sólido, isso não importaria.

Se você não quiser esperar a transferência terminar, use um aplicativo de enfileiramento de cópias como o Teracopy .

É claro que a velocidade de gravação da unidade flash seria o gargalo aqui, portanto, provavelmente não importa como você o faz. :)


11
Excelente resposta, embora eu prefira o FastCopy . :-)
afrazier

Teracopy é ótimo! Gosto da maneira como ele automagicamente substitui o sistema de cópia de arquivos do Windows. Um enorme aumento de velocidade, obrigado!
Fredley

Mesmo que pareça lógico, e é isso que eu pessoalmente acho. mas a prática está provando o contrário, tenho um flash USB que copia um arquivo único (do SSD) a 30 MB / s, mas quando tento copiar três arquivos ao mesmo tempo no mesmo ambiente, a velocidade cai para 2,5 MB / s por thread de cópia. Portanto, a velocidade é reduzida para 7,5 MB / s a ​​partir de 30 MB / s.
Sísifo

2

Se o disco de destino for um SSD, lembre-se de que os SSDs são, para o que está em causa aqui, muito rápido . (*)

Se o destino for algo mais lento (de um flash com taxa de gravação não tão alta a um HDD SATA3 a uma fita magnética), você deve enfileirar as transferências, uma de cada vez.

Seu gargalo estará no disco de destino, com certeza

Nos HDDs, isso é recomendado hoje em dia porque, embora haja mais de uma cabeça em um cilindro, eles não podem ler nem escrever simultaneamente (não mostrou impacto no desempenho no cenário do mundo real devido ao fato de podermos encontrar dados aleatórios em uma das cabeças que não nos permitiria R / W nessa cabeça durante a maior parte do tempo, e se as cabeças não estiverem completamente centralizadas, isso poderá levar à corrupção do disco).

O senso comum (e também a matemática!) Diz que, se tivermos uma fonte muito boa, mas pudermos fazer a transferência de arquivos em paralelo, a busca principal poderá (em muitos cenários) ser mais rápida que a serialização do trabalho.

(*) Ou seja, como declara a newton, porque não há movimento da cabeça. Mas não devemos usar o termo latência : latência é movimento da cabeça + atraso na rotação do disco + tempo de leitura, e no SSD esse é simplesmente o tempo de leitura aleatória e não depende da posição de leitura anterior, como fazem as unidades de disco


2

Usando o utilitário de cópia de arquivo embutido no Windows, ambos são terrivelmente lentos. Você pode considerar o uso de um aplicativo alternativo como o TeraCopy .


1

Se você estava copiando através do protocolo IP (FTP / SCP / Samba / etc), há menos sobrecarga para copiar um arquivo, pois existem vários handshakes entre cada arquivo.

Nesse caso, como existem arquivos grandes e poucos em quantidade, não fará muita diferença para o barramento de E / S o que você faz e provavelmente é mais fácil copiá-los como estão.


0

É melhor escrever um único arquivo de cada vez.

Você provavelmente descobrirá que a largura de banda da sua unidade flash ficará saturada com bastante facilidade. (É improvável que a unidade de origem seja o gargalo.) Embora o USB 2.0 possa transferir até 480 MB, sua unidade flash provavelmente está limitada a ~ 20 MB. Isso significa que, quando você transfere alguns arquivos de um (s) disco (s) rígido (s), isso aumenta a velocidade de gravação da unidade flash e cada arquivo é gravado mais lentamente, pois eles precisam ser compartilhados.

Além disso, ao escrever vários arquivos ao mesmo tempo, você aumenta a fragmentação porque, a menos que o espaço para os arquivos seja totalmente alocado assim que a transferência for iniciada, eles acabarão sendo divididos em pedaços à medida que os arquivos forem transferidos.

(Felizmente, porque as unidades flash são de estado sólido, não existe um cabeçote que precise se mover para frente e para trás como faria se você transferisse vários arquivos para um disco rígido.)

Outra desvantagem de gravar vários arquivos ao mesmo tempo é que as caixas de diálogo de cópia de arquivo indicam apenas o progresso e o tempo restante desse arquivo individual, e torna-se quase impossível estimar o tempo total porque não é linear (você não pode simplesmente adicionar eles). Transferi-los juntos fornecerá um feedback muito mais preciso para toda a transferência.

Se os arquivos de origem forem de fontes diferentes (você quer dizer discos rígidos diferentes? CD / DVD? Unidade de rede? Ou apenas pastas?), O que você pode fazer é usar uma ferramenta dedicada de cópia de arquivos em vez dos recursos internos do Windows em função. Algumas opções incluem a ferramenta Microsoft TechNet Robocopy , que também possui um front-end da GUI , RichCopy (também da TecNet), uma ferramenta aprimorada baseada em Robocopy e Teracopy , especializada em tornar a transferência o mais eficiente possível (e possui um versão gratuita).


0

OK, já que o OP disse especificamente que ele estava copiando-os pelo USB 2.0 para um destino que eu teria que dizer um de cada vez, independentemente da fonte.

S = Serial. Múltiplos fluxos de arquivos = Sobrecarga.

Mas na prática ...

Ao copiar de várias fontes, o tempo perdido em vários fluxos seria mais do que compensado por não ter que criar manualmente uma 'fila' de cópias. E é mais fácil. ;)

Além disso, se você estiver copiando em vários fluxos e um falhar, o restante provavelmente será concluído.


0

O tempo de processamento eletrônico economizado ao carregá-los individualmente teria que ser considerável para compensar o tempo perdido entre o ato físico de esperar que cada arquivo terminasse de carregar e mover o próximo individualmente, ao que parece.


Leia outras respostas antes de escrever uma nova resposta
yass
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.