[gclist] GC topics
Bryan O'Sullivan
bos@serpentine.com
Tue, 20 Feb 1996 14:26:46 -0800 (PST)
k> I do lots of stuff on my Macintosh Powerbook (12 Mbytes of RAM,
k> plus RAM Doubler). The other day, I purchased a product to convert
k> my Framemaker documents to HTML.
Oh dear. Well, WebMaker doesn't really demonstrate anything much
other than that it is still possible, in 1996, to buy poor-quality
software.
k> Certainly, you would think that a company like Harlequin would know
k> how to build an efficient Lisp run-time system for Macintosh
k> computers...
That's as may be, but this is not what they did. WebMaker sits atop
xlisp, which is ancient and crufty.
k> 1. Storage leaks from conservative pointer scanning?
k> I don't think this is a major source of typical overhead though
k> on rare occasions this may have very ugly consequences.
Indeed. Alas, my job involves dealing with one of those occasions,
and I suspect that they are likely not to be so rare. One component
of the system for which I am responsible is implemented using a
conservative collector (it's written in Scheme, hence the use of GC).
This component is a daemon which sits around, preferably for as long
as possible, and does things when prodded. Unfortunately, it tends to
grow in size by about 6-10M every day, which means that it has to be
killed off and restarted every few days in order that it not thrash
the host on which it runs.
I suspect that this is not an unusual problem among programs that run
for a long time and use imprecise pointer-finding techniques. It may
be that many of these leaks may be plugged by educating programmers
that garbage collection does not imply forgetting about memory
management (break those links!), but the daemon in the upcoming
release of my system still leaks several hundred kilobytes a day even
after close attention to just this kind of thing.
<b