Por que demora tanto para copiar um arquivo de 900MB vs. 200MB no Windows 7?

4

Se eu copiar um arquivo de 213 MB, ele copia IMEDIATAMENTE - bem, em milissegundos Se eu copiar um arquivo de 936MB, demora aproximadamente 1min.

Ambos os arquivos estão localizados na raiz da minha unidade E: \.

Por que haveria tal diferença? Mesmo que o 213MB demore 999 milissegundos, o último deve copiar em apenas alguns segundos, mas não.

A máquina tem 4GB Ram, duo core, etc. - ambos estão em uma única unidade.

    
por user46550 17.08.2010 / 21:40

4 respostas

3

Tenho notado que há um alto grau de cache que ocorre no Windows 7. Se você copiar um arquivo que se ajustará completamente à RAM disponível, ele retornará o controle de volta a você com muita rapidez, para que você possa trabalhar enquanto termina sua cópia em segundo plano.

Dito isso, o cache realmente não explica a diferença nos tempos de cópia de arquivos, a menos que o arquivo já esteja na memória quando você tenta copiá-lo, enquanto o outro não está. Um minuto para uma cópia de disco para disco de um arquivo de 936 MB é de cerca de 15 megabytes por segundo, o que é uma taxa de transferência respeitável.

Em outras palavras, eu esperaria que um arquivo de 936MB demorasse um minuto ou mais para ser copiado.

    
por 17.08.2010 / 22:15
0

Há uma série de comandos que ocorrem toda vez que você executa uma rotina de cópia de arquivos. Se o arquivo tiver 213MB, você executaria esses comandos (digamos, três etapas) e um único comando de leitura / gravação para copiar o arquivo.

Se o seu arquivo for 936MB, você ainda executaria as 3 etapas mencionadas anteriormente e mais 7 comandos de leitura / gravação para realmente copiar o arquivo.

Assim, 100 arquivos pequenos de um total de 900MB abrangem 100 etapas obrigatórias e 100 etapas de "cópia" e levará mais tempo do que copiar um único arquivo de 900 MB

Portanto, a diferença é entre o número de etapas necessárias para copiar.

    
por 17.08.2010 / 22:15
0

Sua origem e seu destino são fisicamente iguais nos dois testes? Copiar arquivos na mesma unidade leva mais tempo por causa de todo o processo de ir e voltar da cabeça da unidade. Os respectivos cabeçotes podem ler / gravar sequencialmente (quantidade de fragmentação pendente) ao copiar de drive para drive.

    
por 17.08.2010 / 22:29
0

A minha experiência é que o Windows reportará o arquivo como copiado depois de lido na memória. Se ele tiver espaço de buffer para o arquivo de 231 MB, mas não para os 900 MB, você terá que aguardar até que ele tenha escrito o arquivo para ler o final dele na memória. Esse pode ser um grande número de ciclos de leitura e gravação em diferentes áreas do disco. Com o arquivo maior, o espaço pode ficar mais longe no disco, resultando em ciclos de gravação de leitura mais lentos.

O Windows também estima as cópias de alta inicialmente. Costumo obter estimativas de minutos e a cópia é concluída em alguns segundos ou dezenas de segundos.

Copiar um arquivo para uma área de disco próxima à fonte será mais rápido do que copiar para um local mais distante no disco. A latência do movimento da cabeça costumava ser maior que a latência rotacional. Ambos aumentam com a distância. Eu não olhei para os valores de latência ultimamente, mas espero que o movimento da cabeça ainda seja mais lento do que a latência rotacional.

    
por 18.08.2010 / 01:07

Tags