James K. Lowden wrote: > On Sat, 30 Jan 2016 22:23:24 +0000 > Howard Chu <hyc at symas.com> wrote: > >> Note that the cache eviction runs quite frequently - once every 5 >> seconds or so, and evicts pages regardless of whether there's any >> memory pressure in the system. It's quite possibly the stupidest >> cache manager ever written. > > Any insight into what they were thinking? Back when I used Windows > daily, it used to annoy me that every morning the machine had to warm > up again, to revive the state I'd left it in the night before. In > NetBSD I learned that unused memory is unused, so why not use it?
As I understand it, the main rationale is reliability - they don't trust their OS to stay up longer than 3 seconds after any particular write operation. There's a lot more information here https://groups.google.com/forum/#!topic/comp.os.ms-windows.nt.misc/449tdNYPoX0 That's from 2005 and unfortunately the Windows kernel variables for cache tuning no longer exist. A lot of the relevant info no longer exists on the original websites either, but I was able to pull one up from the web archive: https://web.archive.org/web/20010825042328/http://www.sysinternals.com/ntw2k/source/cacheman.shtml > I have a feeling that "fast app launching" is the reason, as though > Windows users were excitedly punching the Start button with a > stopwatch. But maybe there's more to it than that? It may well be a user-oriented philosophy. It is certainly not a developer-oriented approach. It was my frustration with slow build times on Windows that led me to investigate this in the first place. https://bugzilla.mozilla.org/show_bug.cgi?id=294122#c69 A lengthier explanation of how it works is online here https://msdn.microsoft.com/en-us/library/bb742613.aspx but there's pretty much no information there that's actionable - aside from LargeSystemCache there's no tuning knobs left. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/