John Pearson wrote:The problem lies with data write evicting program pages in many cases. You are right that they don't need to be written, but they do need to be read back, so when I unhide a window there's a large delay while the underlying program is read back in. If the pages are dirty, then there's the delay while they are written.
Wouldn't having (practically) all your memory used for cache slow down
starting a new program? First it would have to free up that space, and then
put stuff in that space, taking potentially twice as long.
If the cache pages are clean (not been modified since they were read from the disk), then evicting that data will not take very long. If the program you are just starting is not in the cache, then the time taken to load it from disk will dwarf the time needed to evict cached pages. And there's also the possibility that the cache contains the data you are loading, which definitely will speed things up..