I'd like to ask a few questions about Windows (7) memory caching and Windows memory management in general.
I recently upgraded my computer (I7 920@3.6 GHz, Windows 7 Pro) from 6 gigabyte memory to 24 gigabyte memory. Yes, this is a *total* overkill for me as a regular homeuser, but since the upgrade was so cheap (less money than I spend on my original 6 gig!) I thought - why not?
Anyway, since I now have this huge amount of memory to play with, I naturally want to make as much use of it as possible.
The first thing I did was to install a ramdisk from company X. This particular ramdisk is most unique, because it has dynamic memory management. In short, this means that I can set it up to any size I want, depending only on the license I bought and the actual amount of physical ram memory that I have. So, I set this ramdisk up to use 8 gigabyte of ram. However, this ramdisk will only use the amount that is actually stored on the ramdisk. Also, if I delete files from the ramdisk, memory will be released! Not since the glorious days of the Amiga have I been able to find a ramdisk for Windows that has this ability.
Well, that right there is a nice way to utilize the huge amount of ram I have at my disposal. I can store "crap"-files on the ramdisk, use it for temporary files, extract archives, set junction points for games and so on.
What would be of more interest to me though, is the ability to cache more things from the harddrive into physical ram for blistering fast file access. I know that Windows by itself uses a number of techniques to cache files to ram, through prefetch and also when I run an application, it will store (some) of that data needed to run that particular application.
If I don't turn off my computer, but instead use the Power saving mode, that file cache will continue to grow, and after several days of use, opening different applications, eventually I will fill up all available memory with cached data - which is a good thing!
What I miss in Windows though, is a simple way to cache on demand! For example, I got this rather crappy coded mmo that is extremely disk intesive. It takes up +14 gigabyte of harddisk space. Due to the crappy coding, this game constantly reads from the harddisk, which leads to stuttering gameplay, even though I got a computer that crushes even the recommended specs for this particular game. Clearly, in this case, harddisk activity is the culprit for crappy performance.
So, sitting there with 24 gigabytes of ram to spare, playing a 32 bit game that won't use more than 2 gigabytes of memory, I see all this performance this game *could and should* utilize in a system like mine simply go to waste.
I guess I could of course copy the entire game to the ramdisk and run it from there, but that's not a very neat solution to this problem imho. What I would *really* like to be able to do, would be to precache the entire game/application on demand, OR (depending on actual ram any user might have) precache as much as the system would allow - on demand!
So, Jeremy or anyone else, can you see the issue(s) here, and see the need for solution to this?