Como o tamanho de um arquivo no disco pode ser de 0 bytes quando há dados nele?

97

Eu tenho um arquivo no Windows 10 com 362 bytes de dados, mas o "tamanho no disco" é apenas 0 bytes. É um programa simples "Hello world" escrito em assembly e salvo em Notepad ++ .

Como é possível que o tamanho no disco seja zero quando o tamanho do arquivo é de 362 bytes?

Eu tenho um SSD, não um disco rígido normal.

Captura de tela da caixa de diálogo Propriedades:

    
por Coder88 25.01.2016 / 00:00

1 resposta

150

Isso acontece quando o arquivo é tão pequeno que seu conteúdo e a contabilidade do sistema de arquivos se encaixam em 1 KB. Para economizar espaço em disco, o NTFS mantém arquivos pequenos "residentes", armazenando seu conteúdo diretamente no registro do arquivo, portanto, nenhum cluster deve ser alocado para ele. Portanto, o tamanho no disco é zero porque não há nada além do registro do arquivo. Quando o arquivo fica suficientemente grande, o NTFS o torna "não residente", aloca um ou mais clusters para ele (criando um "tamanho diferente de zero no disco") e cria um "par de mapeamento" no registro de arquivo no lugar dos dados aponte para o cluster.

Discos rígidos SSD ou Windows 10 não afetam isso; é simplesmente um recurso NTFS. Outras leituras: Os quatro estágios do crescimento de arquivos NTFS .

Observe que a métrica "tamanho no disco" não está exatamente correta. Por exemplo, ele nunca inclui a constante 1 KB que o registro do arquivo NTFS ocupa. A métrica foi introduzida no Windows 95, que não usava NTFS e, portanto, não poderia ter sido responsável por esse fenômeno; Ele apenas mostrou o tamanho do arquivo arredondado para o próximo múltiplo do tamanho do cluster. Esse algoritmo de estimação foi realizado para o Windows 7, embora muitas versões do Windows entre eles usassem NTFS e armazenamento residente. Foi finalmente atualizado no Windows 8 para contar arquivos com apenas dados residentes como tamanho zero no disco. Outras leituras: O que é 'Tamanho no disco'?

    
por 25.01.2016 / 00:14

Tags