GC performance - was Re: [gclist] GC topics
Charles Fiterman
cef@geode.geodesic.com
Thu, 22 Feb 1996 08:06:07 -0600
>
> "> We can allocate leaf objects. These land in separate pages from
> > non leaf objects. This makes scanning much faster. In generating
> > for YAFL you can tell leaf objects from non leaf objects and
> > generate the proper malloc.
> >
> It sounds interesting, but I do not really understand where it
> fits. It is true that since I can decide statically whether a
> class has leafs or not, I can allocate leaf objects separately from
> other objects pretty easily."
>
> Separating non-pointer-containing objects is crucial for a nonmoving collector
> running in limited physical memory. The collector does not need to see pages
> containing such objects. In many environments they constitute the large
> majority of all allocated memory. Thus this can greatly reduce the collector's
> VM footprint. I don't know how to get the same benefit in a compacting or
> copying collector.
Our most extreme example is this. An interactive multimedia application took
80 Meg. Since we scan memory at 8 megs per second this meant a collection
cycle took 10 seconds. Totally out of the question. But 79 Meg were bitmaps,
making those leaf objects meant collection took 1/8 of a second. This was
easily buried in the idle time spent waiting for key clicks and mouse events.
A language that generates C can easily tell leaf from non leaf objects.