3 ms·
A 45-minute full GC was possible if you loaded a lot of stuff into your image, I suppose, but it certainly was not a daily occurrence for me or anyone I knew.
by ScottBurson 12y ago
A 45-minute full GC was possible if you loaded a lot of stuff into your image, I suppose, but it certainly was not a daily occurrence for me or anyone I knew. Most GC activity was incremental, meaning it slowed the machine down somewhat but you could still use it while the GC was going on.
While you could request a full GC that would freeze out the console until it was done, this wasn't done often. It was usually easier to save out your files and reboot :-)
- Animats 12y agoThe incremental GC came later. The initial release offered only a full mark-and-sweep GC over all of memory, some of which was paged out to disk. That's why it was so slow. Eventually Symbolics got a generational GC working, and the thing became usable. But you always had to GC; you couldn't just exit a program.
- hga 12y agoNot at all my experience with MIT Lisp Machines, and I can't imagine the Symbolics ones were that sort of unusably worse, unless configured to be so, or you were using the very first releases of the 3600, which were late and at least to some degree rushed to market. State of the art in the early '80s on the original CADR hardware and software was 2 space incremental but not generational copying GC. Every cons (memory allocation) would invoke the copying GC to do a bit of work, and once done the flip was transparent. Generational GC, which I didn't experience, was a big thing because the above had lousy locality and frequently/generally? cause page faults, making the pauses noticeable and obnoxious, but not the end of the world (perhaps most wouldn't even notice if not watching the three bars at the bottom for computing, paging and GC).
- ScottBurson 12y agoNo, you're mistaken, and hga is right. Don't confuse incremental with generational! The MIT CADRs had incremental, non-generational collectors, before the 3600s ever came out. My recollection is that the 3600s had generational GC sometime in 1983-84; I'm not certain of this but I don't think it was much later. > But you always had to GC; you couldn't just exit a program. You could certainly reboot anytime you wanted. That may or may not have been a sensible thing to do, given what you were doing, but it was certainly possible. Given a choice between a full GC vs. saving your work and reloading it after the reboot, the latter was usually preferable. It's true that you couldn't free the heap space of one application independently of the rest of the system.