%20oferece%20suporte%20a%20arquivos%20de%20espa%C3%A7o%20reservado%20com%20tamanhos%20falsos%3F.png)
Cada vez que inicio o Photoshop, ele cria imediatamente um arquivo temporário de 2 GB no disco rígido onde o cache está localizado. É uma unidade de prato e não ouço nenhum dos ruídos do disco rígido que normalmente estariam associados à 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 realmente precise armazenar alguns dados em cache posteriormente?
Responder1
Existem duas maneiras diferentes de fazer isso em um volume NTFS.
OSetEndOfFile
função, em sistemas de arquivos NTFS, reserva espaço em disco para o arquivo, mas não preenche esse espaço com nada. Pode haver uma pequena atividade de disco aqui devido à atualização da contabilidade NTFS. Quando um programa faz qualquer coisa em um arquivo além do último byte que foi gravado anteriormente, o NTFS rabisca a execução entre o último byte gravado (último byte "válido") e o byte solicitado (para evitarproblemas de segurança) e atualiza o ponteiro de dados válido.
Então háarquivos esparsos. Ao contrário dos arquivos normais estendidos com SetEndOfFile
, o NTFS rastreia quais setores contêm dados reais, 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 fsutil sparse queryflag
seguido pelo caminho para o arquivo. Se não for esparso, o programa está usando a primeira abordagem.
Leitura adicional:Por que minha gravação de byte único demora uma eternidade?
Responder2
Sim, isso é chamado de "arquivo esparso".
NTFS e ReFS suportam, mas FAT32 e ExFAT não.
Um programa pode informar explicitamente ao sistema operacional 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 lidas pelo programa.
Na caixa de diálogo 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 alguns bytes para obter blocos completos do HDD).
Veja tambémhttps://en.wikipedia.org/wiki/Sparse_file
Responder3
A ferramenta integradafsutilpode criar rapidamente um arquivo não esparso cheio de zeros, com extensão fsutil file createNew <filename> <bytes>
. Isso ocupará espaço no disco, mas os zero blocos não precisarão ser gravados (supondo que você esteja usando NTFS ou similar).
Aqui está um exemplo de criação de um arquivo de 10 GB. O espaço livre no disco rígido cairá em 10 GB, mas a ação deve acontecer muito rapidamente.
C:\>fsutil file createNew dummy 10737418240
File C:\dummy is created
C:\>fsutil sparse queryFlag dummy
This file is NOT set as sparse