Meu chefe estava dizendo que leva mais tempo para copiar dois arquivos ao mesmo tempo do que fazer um e depois o outro, porque o disco rígido precisa mudar a cabeça entre os dois locais no disco. Isso é verdade? Parece-me que o sistema operacional deve ser inteligente o suficiente para corrigir isso (ou seja, ele deve saber copiá-los sequencialmente). Isso é verdade ao copiar para uma unidade conectada a uma porta USB?
EDIT: existem outros fatores relacionados ao sistema de arquivos? Por exemplo, faz diferença copiar 1 diretório contendo 10 arquivos e 10 arquivos de todo o disco? Gostaria de saber apenas sobre um meio de origem e um meio de destino (sem leitura de várias unidades).
hard-drive
performance
file-transfer
Celeritas
fonte
fonte
Respostas:
Vou adiar você para esta pergunta . Parece que a execução simultânea de duas operações de cópia no mesmo disco (embora iniciada através de operações de cópia separadas) levaria mais tempo como resultado da latência gerada pela busca principal entre as operações concorrentes.
Se, no entanto, as operações de cópia forem iniciadas simultaneamente, a grande maioria dos sistemas operacionais modernos é inteligente, como você disse, o suficiente para enfileirar as transferências uma após a outra e deve gerar um tempo de cópia um pouco mais rápido.
Aparentemente, existem vários aplicativos disponíveis para forçar as operações de cópia de arquivo a enfileirar e executar sequencialmente, como Teracopy e FastCopy
A execução simultânea de operações de cópia em vários volumes físicos é outra questão, no entanto. Como está transferindo arquivos através de protocolos alternativos.
Em relação à sua pergunta sobre a cópia em uma unidade conectada a uma porta USB, ela depende fortemente do tipo de memória que a unidade usa e das especificações USB que estão sendo utilizadas (certamente um gargalo notável para USB 1.0 e 2.0), bem como as versões anteriores. fatores mencionados em relação ao volume de origem da cópia.
fonte
Existem muitos fatores aqui que podem afetar isso.
Quanto a se o sistema operacional é inteligente o suficiente para corrigir isso, em geral eles são. Ou seja, se você copiar vários arquivos simultaneamente (por exemplo, pense em selecionar vários arquivos de uma vez e arraste e solte).
Obviamente, se você iniciar dois
cp
comandos, ele executará os dois comandos ou, no Windows, se você copiar / colar arquivos separados e obter duas janelas de progresso de "cópia" na tela, a otimização não ocorrerá. Nesse caso, você disse explicitamente ao sistema operacional que deseja executar as duas cópias simultaneamente, para que não decida que uma cópia é mais importante que a outra e comece a colocá-las na fila.fonte
Se você selecionar e copiar várias vezes - a partir de uma GUI, ou usando um comando como "copiar C: \ pasta * D: \ pasta \" -, os arquivos serão copiados seqüencialmente de qualquer maneira, tornando a pergunta discutível.
Se você copiar alguns arquivos e enquanto eles estiverem copiando, comece a copiar mais arquivos - por duas operações separadas da GUI ou por dois comandos separados executados simultaneamente como "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / "- seu desempenho quase certamente diminuirá - talvez um pouco (unidade de estado sólido high-end, arquivos grandes em ambas as operações de cópia) ou talvez por um TON (disco giratório, arquivos relativamente pequenos em uma ou ambas as operações). Melhores sistemas operacionais podem atenuar a penalidade de desempenho em algum grau - por exemplo, os kernels modernos do Linux usam o agendador de E / S CFQ (Completely Fair Queuing), que, em certo grau, "agrupa" as operações em bloco para aumentar a eficiência - mas você ainda terá um sucesso no desempenho. Em alguns casos, o acerto pode ser ENORME,
TL; DR - execute apenas uma operação de cópia por vez, independentemente de quantos arquivos individuais estão incluídos nessa operação , se você estiver preocupado com o desempenho.
fonte