[gclist] Compiler specialized GC's
Dave Lloyd
dave@occl-cam.demon.co.uk
Fri, 1 Mar 96 17:21:55 BST
Darius Blasband wrote:
> > Our GC generates a marking routine for each type in the system rather than
> > interpreting a type description during GC. Makes for quite a fast
> > traversal.
>
> Is you language (hence, type descriptions) more specific ?
Algol68 is statically typed, so I know where I'm going from every type. I saw
a 5-fold performance improvement over a table-driven GC where following a
pointer involved a few indirections to find out what was under it (now a direct
call). There were other improvements as well which helped such as conflating
non-recursive levels of marking into one routine (but this inflates the code
size a bit more). Arrays and structures containing structures benefit greatly
from this. I have yet to be ruthless about conflating marking routines for
types which have the same pointers out in the same positions but different
non-pointer fields.
----------------------------------------------------------------------
Dave Lloyd Email: Dave@occl-cam.demon.co.uk
Oxford and Cambridge Compilers Ltd Phone: (44) 1223 572074
55 Brampton Rd, Cambridge CB1 3HJ, UK