Por que a velocidade de exclusão no Windows geralmente é periódica?

13

Apenas por interesse, qual é o motivo dos períodos de exclusão serem periódicos com frequência? No Windows 8, a janela de diálogo de exclusão mostra a velocidade de exclusão em um diagrama.

Janela de diálogo de exclusão do Windows 8

Se não houver razão, é claro que isso também seria uma resposta.

danijar
fonte
4
você tem 100.000 arquivos na pasta, todos têm tamanhos diferentes, a medida é Itens por segundo, portanto, quanto menor os itens, mais rapidamente os itens serão excluídos.
Ramhound
3
@ Ramhound, não parece que isso esteja relacionado à variação do tamanho do arquivo. A natureza sinusoidal do gráfico é muito regular.
GaTechThomas
1
O Windows não zera os blocos ocupados ao excluir arquivos. A exclusão de um arquivo grande não deve demorar mais do que a exclusão de um arquivo pequeno. O culpado é provavelmente o grande número de itens. Eles estão em muitas subpastas? Existe uma sobrecarga substancial ao lidar com muitos arquivos (grandes ou pequenos) - independentemente de você estar excluindo, copiando ou movendo.
abstrask
2
Armazenamento em cache de algum tipo? Muitos pedidos de exclusão são liberados nos picos do gráfico?
Jesse Slicer
1
Eu já vi isso também, às vezes com ondas muito maiores.
Moshe Katz

Respostas:

5

Há algumas razões:

  1. Continuidade dos dados: o NTFS é implementado onde ele grava seqüencialmente em um disco; portanto, se você editar um arquivo - o NTFS pode precisar armazenar as alterações em um setor não contíguo no disco rígido. Isso significa que, para excluir um arquivo, pode ser necessário pular do setor 2 para o setor 100.000 (hipoteticamente, é claro) e depois voltar para finalizar o arquivo. Em seguida, ele encontra o próximo setor do próximo arquivo a ser excluído e, novamente, pode repetir esse processo.

  2. Tipos de dados: digamos que você esteja excluindo uma pasta temp, ela pode conter arquivos grandes e pequenos. Alguns deles serão rápidos no processamento e outros podem ser mais lentos (seja o tamanho ou a complexidade dos dados - ou seja, quantos setores precisam ser processados ​​para concluir um "item")

  3. A @Ramhound mencionou a peça "itens por segundo", que parece ser confirmada pela sua caixa de diálogo de exclusão ( Speed: 1.082 items/s). Portanto, excluir um arquivo enorme, um arquivo não contíguo ou um arquivo pequeno, todos desempenham um papel no número de itens por segundo.

  4. Priorização da CPU: esse material é feito em ciclos de clock, portanto, é provável que sua CPU esteja executando outros processos durante o ciclo e que possam afetar a velocidade (isso é conjectura da minha parte)

nerdwaller
fonte
3
O Windows / NTFS não zera os blocos ocupados ao excluir arquivos. Grande ou pequeno, contíguo ou não contíguo não importa.
abstrask
@abstrask - eu não disse que faz nada zero. No entanto, ele precisa pular o $BitMap(arquivo) para cada cluster e marcá-lo como livre para usar (ou seja, "excluído"). Abrir e editar um arquivo (em qualquer nível) requer recursos e ter que pular nele exige sobrecarga e pode absolutamente atrasá-lo. Se o arquivo for grande - leva mais tempo para editar, se o arquivo não for contíguo -, levará um pouco mais para procurar.
Nerdwaller 9/08/13
1
Cada cluster é representado por um bit no arquivo $ Bitmap. Assumindo o tamanho padrão da unidade de alocação de 4 KB, a referência de alocação para um arquivo de 100 KB é responsável por cerca de 3 bytes no arquivo $ Bitmap. Um arquivo grande, digamos 1 GB, ocupa 32 KB no arquivo $ Bitmap. Mesmo se $ Bitmap estivesse fortemente fragmentado, o disco rígido teria apenas que pular entre 32 KB / 4 KB / cluster = 8 clusters, para marcar os clusters do arquivo de 1 GB para exclusão. Sim, mais bits precisam ser invertidos para excluir um arquivo grande, mas é dificilmente mensurável e definitivamente não causaria os grandes impactos visuais mostrados na captura de tela.
abstrask