Resumindo: os algoritmos pobres e a estimativa saltitante são, na verdade, uma fraqueza na implementação.
Outras ferramentas, como o TeraCopy , fazem um trabalho melhor. Acho que não vale a pena explicar por que a implementação deles não é boa. Eles terão notado e irão melhorar.
O que é difícil:
- Você precisa levar em conta as flutuações de recursos (CPU / largura de banda da rede / velocidade do HDD principalmente)
- Você precisa extrapolar o tempo necessário para prever o comportamento (o que a cópia de arquivos do Windows faz definitivamente agora).
- Faça ajustes no tempo ao longo de sua estimativa original (quero dizer, pequenos ajustes que não são como na foto engraçada acima!)
Para isso, não apenas a quantidade de bytes, mas a quantidade de arquivos para criar desempenham um papel. Se você tiver um milhão de arquivos de 1KB ou mil arquivos de 1MB, a situação será bem diferente porque o primeiro tem a sobrecarga de criar muitos arquivos. Dependendo do sistema de arquivos usado, isso pode levar mais tempo do que realmente transferir os dados.
Esse diálogo me deixou louco muitas vezes:
- Em um sistema WinNT mais antigo, se você tivesse muitos arquivos pequenos para copiar, ele exibia o nome e uma animação interessante para cada arquivo, tornando mais lento todo o processo para ficar praticamente inutilizável.
A cópia moderna do Windows não é muito melhor:
- Para calcular a quantidade de dados a transferir, parece fazer uma pesquisa primeiro (é o que eu suponho que faz), portanto, leva muito tempo se você selecionar vários diretórios até que efetivamente comece a fazer o trabalho.
- Algum tempo limite interno impede que arquivos grandes sejam copiados (> cerca de 60 GB em meu sistema). A dor é que ele diz que depois de ter copiado já mais de 30GB pela rede e isso é perdido a largura de banda e tempo, porque você tem que reiniciar do zero!
- A cópia de arquivos de um computador para outro é extremamente lenta por algum motivo. (Quero dizer, comparado com a largura de banda de rede disponível, usando outras ferramentas é mais rápido, portanto não é uma limitação computacional.)