Take the 2-minute tour ×

What are the performance affects of compressing Program Files on Windows NTFS?

On a fast, multicore machine, the overhead of decompression is minimal. Machines are generally disk bound, and if you can reduce the disk load by compression, you often speed things up. (Microsoft says that the built in compression of Windows Search indexes actually improves speed for this reason.)

On the other hand, Windows' virtual memory is complicated. Perhaps if files are compressed, they can't be paged out simply. And there may be other issues.

In short: On a fast, multicore machine with a relatively slow disk, what performance affects will compressing Program Files have?

share|improve this question
Food for thought: considering Program Files usually holds binary programs, your compression ratio may not be as good as you think. –  Andrew M. Jan 3 '11 at 5:52
Found this link: serverfault.com/questions/61750/… . I think it really comes down to this question: "Can Windows page and memory map a compressed file the same way it does a regular file?" –  SRobertJames Jan 4 '11 at 3:26
add comment

1 Answer

For most server machines, it should probably be hitting files in %PROGRAM_FILES% at boot and initialization, and not very often after that - it should get anything it needs to run into memory, and then page-in/out as needed without having to hit the actual original file on disk again.

An exception could be log files, if they are in the directory tree that you've compressed. And in that case it's doing a ton of writes, so I don't see compression helping IO performance in any way at all. If your application(s) involve generating or seeking through large files, that would also make a difference. But in either case, you shouldn't have those files located on your system volume; if they fill up, your system is down, so you should keep such transient or growing files on a different partition (which you may or may not want to compress.)

Another exception would be if it's hitting a ton of different binaries during normal operations, but I would imagine that's much more common on a desktop machine than most servers. An exception would be a Citrix or TS server presenting complete desktop sessions; I'm sure there could be some others scenarios too.

So, I imagine the best answer would be "it depends on your server's workload. Try it with and without, with appropriate benchmarking, and tell us what you found."

As a side note, if you have new hardware, configured properly, why should free disk space on c:\ be a concern?

share|improve this answer
1. I want to compress to save disk access time, not to free up space. –  SRobertJames Jan 4 '11 at 3:23
2. But I'm not sure if compressing Program Files will disturb the paging. Can Windows page as freely if the file is compressed? Can Windows memory map a compressed file? –  SRobertJames Jan 4 '11 at 3:24
I don't know the answer, but I'd be surprised if it can't. I don't see why it couldn't. It reads the file, puts it in RAM, and then pages out anything it needs to. I don't see why compression of the initial file would hinder that. But again, how often is your server needing to do an initial read of binaries from %PROGRAM_FILES% ? –  mfinni Jan 4 '11 at 15:06
add comment

Your Answer


