[gclist] Precise GC's performance
Nick Barnes
nickb@harlequin.co.uk
Thu, 07 Mar 1996 09:45:18 +0000
> >- SML/NJ uses CPS and does not keep a stack (so it allocates out the
> > wazoo).
>
> I think it might be a good idea to introduce a terminological distinction
> here.
Yes, I was sloppy; I felt the meaning was obvious from the rest of the
sentence.
SML/NJ uses CPS as an intermediate representation, which may or may
not have effects on allocation rate and allocation patterns. This is
not what I meant.
SML/NJ also does not have a stack at runtime, using heap-allocated
continuation records which are passed around. This has a pronounced
effect on allocation rate and allocation patterns, and was what I was
referring to. It is, IMO, legitimate to refer to this as
"continuation-passing style", since that's exactly what it is. It
should possibly be qualified as, for instance, "runtime CPS".
> >- until recently SML/NJ had a GC which was only generational in a
> > primitive sense.
>
> I thought it was primitive, but quite generational. (Only two generations,
> and no guarantee of advancement age, and a really simple write barrier,
> but those have never been criteria for whether something is generational.)
This is exactly what I meant by "only generational in a primitive
sense". Only 1.5 generations is, IMO, not _very_ generational. I did
not say that SML/NJ was _not_ generational.
Nick Barnes