If you are looking for ways to tweak your Windows system to conserve disk space, you might be looking at NTFS compression as an option. But if you choose this option, then how does the decompression process work? Today’s SuperUser Q&A post has the answer to a curious reader’s question.
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
SuperUser reader CausingUnderflowsEverywhere wants to know if NTFS compressed files are decompressed to disk or memory:
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 does this process occur technically?
Does Windows load the compressed file into memory, expand it in memory, then read it from memory? Or does it load the compressed file into memory, expand it to disk or memory, write it to disk, then read it?
I am trying to figure out if I can improve my computer’s performance by using NTFS compression. That way, a slow hard drive or SSD that is unable to handle that many write operations will always have less data to write and read, and the powerful processor that is idling most of the time can decompress the files and improve my computer’s storage speed and health.
Are NTFS compressed files decompressed to disk or memory?
SuperUser contributor Ben N has the answer for us:
Windows decompresses files into memory. Doing it to 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 are 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 does not have to decompress the whole thing if you only need a few bytes.
If your SSD is fast, you are probably not going to get any speed improvements from NTFS compression. It is conceivable that the time your processor spends decompressing data plus the time your disk spends reading the compressed data could add up 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 – 64 KB, depending on your cluster size. Any files less than that in size will not 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).
Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.
Image Credit: Jannis Andrija Schnitzer (Flickr)