7

Каждый раз, когда я запускаю Photoshop, он сразу создает временный файл объемом 2 ГБ на жестком диске, где находится кэш. Это диск-диск, и я не слышу шум жесткого диска, который обычно ассоциируется с записью 2 ГБ данных. Можно ли создать пустой файл-заполнитель с "поддельным" размером, чтобы зарезервировать место на случай, если на самом деле понадобится кэшировать некоторые данные позже?

2 ответа2

6

Это можно сделать двумя способами на томе NTFS.

Функция SetEndOfFile в файловых системах NTFS резервирует место на диске для файла, но не заполняет это пространство чем-либо. При обновлении бухгалтерии NTFS может быть небольшая активность диска. Когда программа делает что-либо с файлом, который находится за последним записанным ранее байтом, NTFS выполняет перебор между последним записанным (последним "действительным") байтом и запрошенным байтом (чтобы избежать проблем безопасности) и обновляет действительный указатель данных ,

Тогда есть редкие файлы. В отличие от обычных файлов, расширенных с помощью SetEndOfFile , NTFS отслеживает, в каких секторах есть фактические данные, а не какой байт является последним с допустимыми данными. Длинные нули, где ничего не было записано, не сохраняются на физическом диске.

Вы можете проверить, является ли файл разреженным, с помощью fsutil sparse queryflag за которым следует путь к файлу. Если это не редкость, программа использует первый подход.

Дальнейшее чтение: почему моя однобайтовая запись занимает вечность?

4

Да, это называется "разреженный файл".

NTFS и ReFS поддерживают это, но FAT32 и ExFAT нет.

Программа может явно указать ОС, какие байтовые диапазоны файла должны иметь место на диске (по умолчанию это все). Другие нераспределенные части обрабатываются как содержащие только много байтов со значением 0, если они прочитаны программой.

В диалоговом окне свойств файла вы увидите "нормальный" размер файла, это "поддельный", и размер, который используется на диске, это выделенная часть (плюс некоторый байт для получения полных блоков жесткого диска).

Также смотрите https://en.wikipedia.org/wiki/Sparse_file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .