How does NTFS decompression work in Windows? According to Microsoft, NTFS decompression is done by expanding the file, then using it. That sounds right, but my question is how this process occurs technically.
Does Windows load the compressed file into memory, expand it in memory, and read from memory? Or does it load the compressed file into memory, expand it to the disk or in memory, write to the disk, and then read?
I'm trying to figure out if perhaps I can improve my computer's performance by using NTFS compression. That way, the slow disk drive or SSD that can't handle that many write operations will always have less data to write and read, and my powerful processor that is idling most of the time can decompress the files, improving my storage speed and health.
Best Answer
Windows decompresses files into memory. Doing it onto disk would completely obliterate any speed improvements and would cause a lot of unnecessary disk writing. See the end of this Microsoft blog article on NTFS sparse files and compression:
Of course, if you're low on memory, the memory used by the decompression process could cause other memory be paged out and written to disk in the page file. Fortunately, only the chunks containing sections that your programs actually read will be decompressed; NTFS doesn't have to decompress the whole thing if you only need a few bytes.
If your SSD is fast, you're probably not going to get speed improvements from NTFS compression. It's conceivable that the time your processor spends decompressing data plus the time your disk spends reading the compressed data could add to be more than the time your SSD takes to read the uncompressed data. It also depends on the size of the files you work with. The minimum size of a compressible file ranges from 8 KB to 64 KB, depending on your cluster size. Any files less than that size won't be compressed at all, but a tiny amount of bookkeeping would be added.
If you do a lot of writing to compressed files, you could see a lot of variance in speed due to the compression algorithm used (LZ).
Further reading: How does NTFS compression affect performance?