I have a specific ram-intensive program I run which slows down my entire system for hours after each run - does the Windows NT 6.0/6.1 kernel have any tunables to encourage processes' working sets to be paged back into RAM quicker?
The program in question reads a 1.5GB file into a 1.5GB malloc'ed buffer, does a little processing for a minute, and then quits.
While it is running, all other programs are paged out to disk as expected. When the program ends, the programs are not paged back again. Even if I wait hours, they do not get brought back. That means when I show up and try to use my computer it's painfully slow for ages while it slowly pages each process back in as I use it.
It appears when the process has exited, the "Cached" memory number shown by task manager is very large, and "Free" is very low. Every running process only uses 1 or 2 MB of "Working set", whereas they have normal amounts of "Commit size", indicating most of their pages are on disk.
To me this appears that Windows is using RAM for disk cache to keep my large 1.5GB file just incase I want to re-read it (which I don't), rather than fetching back my normal processes. Is there any way to force this balance towards processes and away from disk cache?