Impacts of the squeak garbage collector
Paul McCullough
paulmc at ftconnect.com
Mon Feb 18 23:08:06 UTC 2002
At 07:55 AM 2/18/02 -0800, Alan Kay wrote:
>Interval had a great submillisecond GC that was terrific for real-time
>apps. Maybe we can get this from them now that they have donated their
>work to Stanford (per Glenn Edens).
Not to put a damper on things, but...
The Interval real-time collector (of which I am the author) should be
viewed as a prototype. It was based on Baker's Treadmill algorithm -- not
the Train algorithm.
Due to some design constraints, and due to running out of time (I was quite
ill for a while and then left Interval shortly before they terminated the
project) I certainly wouldn't call the collector finished. If Glenn Edens
is saying that the collector was sub-millisecond, I have no idea where he
got those numbers. On paper yes, in reality no one knows. In fact, due to
some bugs in the in-liner, much of the code was never in-lined and it ran
much, much slower than the standard Squeak collector. But it did run Squeak
for hours without crashing so the concept worked.
Other research shows that real-time collectors use considerably more time
to run than 'straightforward' collectors: 5 - 8 times more if I recall
correctly. The real-time advantage is that the work is spread out and hence
much less disruptive to the running system. But you have to pay the price
somewhere.
Before anyone asks, I don't the source code (which was written in
Interval's version of Slang). I know where it was on Interval's servers
when I left the company, but have been asked by Tim Rowledge and others if
I have a copy, so it may be lost or somewhere in backup-ether.
I occasionally have a flash of insight as to how to simplify the collector
-- just the other day I realized how to deal with the difficulties of
dealing with become: in a much simpler way.
If someone wants to pursue putting a real-time collector into Squeak, I can
likely provide some guidance (off-list) . One thing that would help
tremendously would be to simplify & clarify the interface between the
Interpreter and ObjectMemory (at least it would have years ago, I haven't
look at the interface recently).
paul
More information about the Squeak-dev
mailing list
|