Desde que alguém pediu uma explicação visual (grosseiramente falando e exagerando):
(Clique para ver a imagem no tamanho completo)
Digamos que eu tenha dois casos de exclusão de arquivos:
O tamanho do arquivo no caso 2 é maior que o caso 1
Por que a exclusão no caso 1 levou muito mais tempo que o caso 2?
Desde que alguém pediu uma explicação visual (grosseiramente falando e exagerando):
(Clique para ver a imagem no tamanho completo)
A exclusão de todos os arquivos inclui atualizações nos metadados do diretório (por exemplo, local onde as informações sobre o arquivo são armazenadas) e (geralmente) atualizações no bitmap de espaço livre. Cada um dos 150.000 arquivos é uma operação em metadados que pode estar em todo o disco.
A exclusão de um único arquivo, independentemente do tamanho, é alterada para uma única entrada de metadados.
Então, no primeiro caso, você está fazendo mais 150.000 operações do que no segundo.
O caso 1 requer muitas, muitas mais operações de diretório. Cada arquivo é excluído individualmente, o que requer sua remoção do diretório em que ele está.
A exclusão de 150.000 arquivos requer a localização de cada arquivo na estrutura de diretórios e a remoção desse arquivo do diretório, mantendo a organização da estrutura de diretórios no processo.
Cada arquivo é salvo em uma seção diferente no seu disco rígido. Os arquivos também podem ser divididos de forma que mais arquivos + mais fragmentos = mais tempo. Um arquivo maior terá menos fragmentos e o disco rígido gastará menos tempo para encontrá-los.
Para apagar um arquivo, a maioria dos sistemas operacionais apenas marcará sua entrada de diretório como não usada, para depois ser substituída pela entrada de diretório em outro arquivo (além de marcar o espaço ocupado no disco como livre).
Na verdade, ele não está passando por todos os dados do arquivo e removendo-o; é por isso que os utilitários de undelete funcionam.
Tags windows