ClassicHasClass
Well-known member
That assumes that the classic VM system is at all logical. Why take the risk? We already know that classic VM is not a typical demand-page system and that loads are non-determinative. So if you have the RAM, why not get around that problem completely?Except if you *have* enough RAM, they won't be paged out...
Besides, you don't get those pages for free. First there's the overhead of VM itself -- with it disabled, the nanokernel turns all loads and stores into direct access. The VM system ages all memory pages using an LRU algorithm every eighth page fault (this got better in 7.5.5, but still occurs in OS 9; see TN 1069), which gets worse as memory increases, and VM uses up file descriptors and disk cache for its data fork loading. There is also maintenance of the backing store which must occur even if nothing is being paged out, and the backing store still exists and is serviced even in the 1MB "file mapping only" VM mode, even though the store is itself not used for the code fragment mapping. None of this happens with VM disabled; it's all real memory and there is no abstraction or overhead.
In fairness, OS 9 did substantially improve code fragment mapping, and OS 9 even has SPIs for letting the app itself control it, but you get this even with VM off. So there's even less of a reason to take the hit.