O Windows (ou NTFS) suporta arquivos de espaço reservado com tamanhos falsos?

7

Toda vez que eu inicio o Photoshop, ele imediatamente cria um arquivo temporário de 2 GB no disco rígido onde o cache está localizado. É uma unidade de disco e eu não ouço nenhum ruído do disco rígido que normalmente estaria associado à gravação de 2 GB de dados. É possível criar um arquivo de espaço reservado vazio com um tamanho "falso" para reservar espaço caso ele precise armazenar alguns dados posteriormente?

    
por user45623 16.06.2016 / 23:40

2 respostas

6

Existem duas maneiras diferentes de conseguir isso em um volume NTFS.

A SetEndOfFile function , nos sistemas de arquivos NTFS, reserva o espaço em disco para o arquivo, mas não preenche esse espaço com nada. Pode haver uma pequena atividade de disco aqui na atualização da escrituração do NTFS. Quando um programa faz qualquer coisa para um arquivo após o último byte que tenha sido gravado anteriormente, o NTFS rabisca a execução entre o último byte gravado (último "válido") e o byte solicitado (para evitar segurança de problemas ) e atualiza o indicador de dados válido.

Depois, há arquivos esparsos . Ao contrário dos arquivos normais estendidos com SetEndOfFile , o NTFS controla quais setores têm dados reais neles, em vez de apenas qual byte é o último com dados válidos. Longas execuções de zeros onde nada foi escrito não são armazenadas no disco físico.

Você pode verificar se um arquivo é esparso com fsutil sparse queryflag seguido pelo caminho para o arquivo. Se não for escasso, o programa está usando a primeira abordagem.

Outras leituras: Por que minha gravação de um único byte leva uma eternidade?

    
por 17.06.2016 / 00:43
4

Sim, isso é chamado de "arquivo esparso".

NTFS e ReFS suportam, mas FAT32 e ExFAT não.

Um programa pode informar explicitamente ao SO quais intervalos de bytes de um arquivo devem ter espaço no disco (por padrão, é tudo). As outras partes não alocadas são tratadas como se contivessem apenas muitos bytes com valor 0 se lidos pelo programa.

Na janela de propriedades do arquivo, você verá um tamanho de arquivo "normal", que é o "falso", e um tamanho de quanto é usado no disco, que é a parte alocada (mais algum byte para obter HDD completo) blocos).

Veja também o link

    
por 17.06.2016 / 00:18