Como funcionam os programas de desfragmentação?

13

a) Qual algoritmo seria usado por um programa de desfragmentação típico para se livrar da fragmentação?

b) Em Defraggler , eu tenho uma opção de desfragmentação rápida e uma opção de desfragmentação. Assumindo que a desfragmentação faria uma desfragmentação normal, o que uma desfragmentação rápida faria?

    
por Lazer 22.06.2010 / 13:47

3 respostas

13

Não sou muito desfragmentado, mas gostaria de compartilhar algumas informações sobre sua pergunta. Para a primeira parte da sua questão, o MSDN menciona os algoritmos de desfragmentação em seus blogs:

In Windows XP, any file that is split into more than one piece is considered fragmented. Not so in Windows Vista if the fragments are large enough – the defragmentation algorithm was changed (from Windows XP) to ignore pieces of a file that are larger than 64MB. As a result, defrag in XP and defrag in Vista will report different amounts of fragmentation on a volume. So, which one is correct? Well, before the question can be answered we must understand why defrag in Vista was changed. In Vista, we analyzed the impact of defragmentation and determined that the most significant performance gains from defrag are when pieces of files are combined into sufficiently large chunks such that the impact of disk-seek latency is not significant relative to the latency associated with sequentially reading the file. This means that there is a point after which combining fragmented pieces of files has no discernible benefit.

Você pode ler o artigo completo aqui: Engenharia do Windows 7 - Desfragmentação de disco.

Para a segunda parte da sua pergunta, o Piriform Docs tem uma resposta :

Defraggler has two different modes for defragmentation: regular defrag and Quick Defrag. Quick Defrag is faster, but the results aren't as optimal as with a regular defrag.

Quick Defrag works faster by skipping over files that have certain properties. These are specified in the Quick Defrag tab of the Options dialog box.

The default Quick Defrag rule is to skip files with fragments larger than 50MB.

Para uma melhor compreensão da desfragmentação, a Wikipédia tem uma boa página .

    
por 22.06.2010 / 14:17
2

Uma observação importante: a Microsoft fornece uma API que os programas podem usar para desfragmentar arquivos com segurança. (Veja Defragmenting Files on MSDN ) Qualquer defragger deve estar usando essas APIs e a maioria faz.

Toda a "magia" de desfragmentação vem em determinar como colocar os arquivos fora, e é isso que os vários programas usam para diferenciar uns aos outros. Se você acha que é realmente inteligente, pode usar o MyDefrag para escrever seu próprio script de layout.

    
por 22.06.2010 / 17:04
0

Não há absolutamente nenhuma resposta. Não há algoritmo "típico". Porque cada aplicativo defrag usa seus próprios algoritmos. Claro que pode haver uma "tendência" a ser vista entre alguns dos algoritmos mais conhecidos, mas em geral não há um típico ou universal.

Pegue o MyDefrag , um aplicativo incrível que você pode, em alguma extensão, escrever seus próprios algoritmos de desfragmentação.

    
por 22.06.2010 / 18:22