Разреженные файлы
Файл, в котором большая часть данных равна нулю, как сообщается, содержит разреженный набор данных. Такие файлы обычно очень большие, например, файл, содержащий данные изображения для обработки или матрицы в высокоскоростной базе данных. Проблема с файлами, содержащими разреженные наборы данных, заключается в том, что большинство файлов не содержит полезных данных, и из-за этого они являются неэффективным использованием места на диске.
Сжатие файлов в файловой системе NTFS является частичным решением проблемы. Все данные в файле, который не записан явно, явно задано равным нулю. Сжатие файлов сжимает эти диапазоны от нуля. Однако недостаток сжатия файлов заключается в том, что время доступа может увеличиться из-за сжатия данных и декомпрессии.
Поддержка разреженных файлов представлена в файловой системе NTFS в качестве другого способа повышения эффективности использования места на диске. Если включена разреженная функциональность файлов, система не выделяет место на жестком диске для файла, за исключением регионов, в которых она содержит ненулевое значение. При попытке операции записи, в которой большое количество данных в буфере равно нулю, нули не записываются в файл. Вместо этого файловая система создает внутренний список, содержащий расположения нулей в файле, и этот список выполняется во время всех операций чтения. Когда операция чтения выполняется в областях файла, где находились нули, файловая система возвращает соответствующее количество нулей в буфере, выделенном для операции чтения. Таким образом, обслуживание разреженного файла прозрачно для всех процессов, к которым он обращается, и более эффективно, чем сжатие для этого конкретного сценария.
Значение данных по умолчанию разреженного файла равно нулю; однако его можно задать для других значений.
Дополнительные сведения о разреженных файлах см. в следующих разделах.
В этом разделе
Тема | Описание |
---|---|
разреженных операций с файлами |
Определите, поддерживает ли файловая система разреженные файлы, вызвав функцию GetVolumeInformation. |
получение размера разреженного файла |
Получите выделенный размер или общий размер файла с помощью функции GetCompressedFileSize или GetFileSize. |
разреженные файлы и квоты дисков |
Разреженный файл влияет на квоты пользователей по номинальному размеру файла, а не фактическому выделенному объему места на диске. |