Windows распаковывает файлы в память. Выполнение этого на диск полностью уничтожило бы любые улучшения скорости и вызвало бы много ненужной записи на диск. См. Конец этой статьи в блоге Microsoft о разреженных файлах NTFS и сжатии:
- NTFS определяет, к какому модулю сжатия осуществляется доступ.
- Весь выделенный диапазон блока сжатия считывается.
- Если блок не сжимается, мы переходим к шагу 5. В противном случае NTFS попытается зарезервировать (но не выделить) пространство, необходимое для записи распакованного CU обратно на диск. Если на диске недостаточно свободного места, приложение может получить ERROR_DISK_FULL во время чтения.
- CU будет распакован в памяти.
- Распакованный диапазон байтов будет отображен в кэш и возвращен запрашивающему приложению.
- ...
Конечно, если у вас мало памяти, память, используемая процессом распаковки, может привести к тому, что другая память будет выгружена и записана на диск в файле подкачки. К счастью, только фрагменты, содержащие разделы, которые фактически читают ваши программы, будут распакованы; NTFS не должна распаковывать все, если вам нужно всего несколько байтов.
Если у вас быстрый SSD, вы, вероятно, не получите улучшения скорости от сжатия NTFS. Возможно, что время, которое ваш процессор тратит на распаковку данных, плюс время, которое ваш диск тратит на чтение сжатых данных, может быть больше времени, которое ваш SSD тратит на чтение несжатых данных. Это также зависит от размера файлов, с которыми вы работаете. Минимальный размер сжимаемого файла варьируется от 8 КБ до 64 КБ, в зависимости от размера вашего кластера. Любые файлы меньше этого размера не будут сжаты вообще, но будет добавлено небольшое количество бухгалтерии.
Если вы много пишете в сжатые файлы, вы можете увидеть много различий в скорости из-за используемого алгоритма сжатия (LZ).
Дополнительная информация: Как сжатие NTFS влияет на производительность?