Windows VCache

If you are anything like I was a few days ago, you have never heard of the VCache system employed by all versions of Windows since 95. Here is an overview of what it’s supposed to do. Reading from and writing to a hard drive is very slow relative to how fast computers can go. So, Windows uses a portion of system RAM to cache parts of the hard drive so that it can be read from and written to in place of the hard drive. In theory, this should greatly improve performance as it speeds up disk access.

Let me now remind you of another system that Windows uses: Virtual Memory. Virtual Memory is a system where Windows pretends a part of the hard disk is actually RAM, so that programs can use up more system memory than your computer actually has available. This also sounds nice in theory, as it should allow your computer to use inexpensive disk space in place of expensive RAM.

So, Windows has two systems in place, one of which pretends RAM is disk space and the other of which pretends disk space is RAM. Hmm….

Here is what happens in practice. When you boot up, Windows allocates most of your available system memory for VCache, because hey why not, it’s not like you’re using it right? Unfortunately when you go to load something up that needs the memory, it’s all taken up by VCache so it starts using virtual memory instead, i.e. it starts loading stuff into disk space instead of system memory. But now there’s lots of disk activity, so VCache kicks in and starts caching this area of disk to RAM to improve load times. But this requires more memory, so things have to start moving over to virtual memory that in turn gets VCached in a huge downward spiral that reminds me of the Ouroboros (thanks Jen).

There are some simple fixes to all this that I have found out greatly improve Windows performance. I recommend a program called Cacheman. There are some manual ways of fixing this problem too, i.e. this. I have noticed significant improvement. Also this fix lets your Windows 98 system use more than 512 megs of RAM which is nice if you have both Windows 98 and >512M and didn’t know that can fuck everything up.

Leave a Reply