Por que copiar arquivos em uma partição é muito mais rápido do que copiar arquivos para outra partição?

6

Por que é significativamente mais rápido copiar arquivos em uma partição do que copiá-los para outra?

    
por Dhean 15.05.2012 / 08:39

3 respostas

3

Eu não acho que copiar na mesma partição seja mais rápido. Se você quer dizer "em movimento", então veja a resposta de Daniel Schwartz, ele explica perfeitamente o que está acontecendo.

No entanto, se você quer dizer uma operação de cópia real, eu não esperaria grandes diferenças de desempenho, desde que a operação ocorra no mesmo disco. Pode haver algumas diferenças por causa do tempo, a operação de posicionamento da cabeça consumirá para discos rígidos (obviamente não para SSDs), mas eu não espero que o impacto disso seja muito grande. Talvez existam também algumas diferenças devido a diferentes estratégias de cache do sistema operacional, mas também este efeito, eu não espero ser muito grande.

O que faz uma grande diferença é copiar de um para outro disco. Se o controler for rápido, isso é muito mais rápido do que copiar no mesmo disco, porque a unidade só precisa ler ou gravar, não fazer as duas operações juntas (Uma exceção a essa regra pode ser dados pequenos, por causa da cache hdd e controlador).

Por favor, note que o sistema operacional pode fazer links para arquivos. Nesse caso, os dados não serão copiados, mas apenas uma nova referência aos dados será criada (o arquivo também não consumirá o dobro de espaço). Isso é muito rápido. Mas se você copiar seus arquivos com os comandos explorer ou shell padrão, os arquivos serão copiados e não vinculados.

    
por 15.05.2012 / 10:09
1

Este é apenas um problema ao copiar dados para e da mesma unidade de disco rígido. Os dados são lidos, armazenados em cache e gravados de volta, mas antes de começar a escrever, o cabeçote de leitura / gravação deve ser movido para o espaço vazio. Ter a origem e o destino em parções separadas garantirá que os setores de disco correspondentes estejam fisicamente distantes. A cabeça de leitura / gravação estará constantemente se movendo para frente e para trás. Muitas vezes você pode realmente ouvir isso.

Enquanto a cabeça está se movendo, os dados não podem ser transferidos. Ter origem e destino na mesma partição geralmente significa menos tempo gasto movendo a cabeça e, portanto, transferências de arquivos mais eficientes.

    
por 15.05.2012 / 12:05
0

Vamos comparar com as duas operações. Primeiro, copiando um arquivo de uma partição para outra:

  1. A origem é aberta.

  2. O destino é aberto / criado.

  3. O espaço é alocado para o destino.

  4. Cada byte de dados do arquivo é lido da origem e gravado no destino.

  5. O arquivo de destino está fechado.

  6. O identificador do arquivo de origem está definido para ser desvinculado no fechamento.

  7. O identificador do arquivo de origem é fechado, desvinculando o arquivo.

  8. Como essa é (normalmente) a última referência aos dados do arquivo de origem, os dados do arquivo de origem precisam ser liberados.

Agora, copie um arquivo de uma pasta para outra na mesma partição.

  1. A origem é aberta.

  2. Um novo link físico é criado para o arquivo de origem no diretório de destino.

  3. O identificador para o arquivo de origem está definido para ser desvinculado no fechamento.

  4. O identificador de origem está fechado, desvinculando-o. O arquivo de origem ainda está vinculado ao diretório de destino, portanto, nenhum espaço livre precisa ser alterado.

Observe que há menos etapas e que nenhuma delas exige que você toque em nenhum dos dados do arquivo ou no mapeamento de espaço livre.

    
por 15.05.2012 / 09:23