Newsgroups: comp.lang.lisp,comp.lang.c++,comp.lang.c,comp.lang.misc,comp.theory
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!newsfeed.internetmci.com!primus.ac.net!news.cais.net!xara.net!peer-news.britain.eu.net!newsfeed.ed.ac.uk!edcogsci!jeff
From: jeff@cogsci.ed.ac.uk (Jeff Dalton)
Subject: Re: allocator studies (was Re: GC & traditional allocators & textbooks)
Message-ID: <DMD9Bx.6qq.0.macbeth@cogsci.ed.ac.uk>
Organization: Centre for Cognitive Science, Edinburgh, UK
References: <4f2ila$6p8@jive.cs.utexas.edu> <823455623snz@wildcard.demon.co.uk> <4f59c3$7il@jive.cs.utexas.edu>
Distribution: inet
Date: Tue, 6 Feb 1996 18:14:21 GMT
Lines: 46
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:20734 comp.lang.c++:172727 comp.lang.c:173803 comp.lang.misc:24525 comp.theory:15366

In article <4f59c3$7il@jive.cs.utexas.edu> wilson@cs.utexas.edu (Paul Wilson) writes:
>In article <823455623snz@wildcard.demon.co.uk>,
>Cyber Surfer  <cyber_surfer@wildcard.demon.co.uk> wrote:
>>In article <4f2ila$6p8@jive.cs.utexas.edu>
>>           wilson@cs.utexas.edu "Paul Wilson" writes:
>>
>>> The history of allocator
>>> research has been a big mess---the literature is a bit of a disaster
>>> area---and the textbooks reflect this.  The analyses in the books are 
>>> shallow and largely wrong.  [...]
>>
>>I won't argue with that! ;-) I'd love to see a good summary.
>
>Well, very briefly:
>
> [...]
>
>   5. The best-known policies (best fit and address-ordered first fit)
>      work better than anyone ever knew, while some policies (Knuth's
>      "Modified First Fit" or "Next Fit") work worse than anyone ever
>      knew, for some programs.  This is because randomized traces tend
>      probabilistically to ensure that certain important realistic
>      program behaviors will never happen in traditional experiments.

> [...]

>>> "Modified First Fit" with the roving pointer is the clearest example.  It
>>> was a bad idea, and it was quickly shown to be bad, but some other 
>>> textbook writers keep mindlessly cribbing from Knuth, [...]

When I was a student, there was a course in which people implemented
various alloc/free policies, to compare them experimentally.  They got
results rather different from the ones suggested by Knuth but were
reluctant to draw the conclusion that Knuth might be wrong.  I'm not
sure how they convinced the instructor that they hadn't blown it.
(I've forgotten the experimental details, I'm afraid.)

Anyway, for some reason, I've experienced pretty good performance from
mark-and-sweep GCs, and without much in the way of long pauses, both
with Lisp systems and with implementations of strings.  The really
slow, long pause, GCs I've encountered were copying ones.

-- jd



