Hi Adam,
I appreciate your lengthy response, and in general I have a lot of
respect for your insights on this topic. In this message, however,
you're being a bit too platitudinous (ahem). What you've mostly
provided is an account of the high-level differences, but (the SirMail
instance aside) nothing concretely numeric. I guess I (and quite
possibly Jim and others) would be interested in actual stats.
Three years ago, David Goldberg, Manos Renieris and I implemented and
ran the lag-drag-use-void analysis for a bunch of Scheme systems,
especially Larceny under its multiple GC configurations. We were
surprised to find that there was far less leakage than we would have
expected. The conservative GC seemed to be doing pretty well in the
face of hard data collection.
Our experiments were preliminary and I wouldn't rush to make decisions
based on them. However, it'd be interesting to know what kind of hard
data exist along those lines. Perhaps it would even be interesting to
re-do the lag-drag-use analysis using PLT Scheme, now that it has the
ability to easily switch between GCs?
(As you know, leakage is not necessarily a GC strategy issue. It
could be, for instance, that somewhere in the Web server, someone
created a regular rather than weak hash table; or that the user didn't
set timeouts properly. A precise GC would do no better than a
conservative GC if those are the causes of the problem.)
Cheers,
Shriram