|
|
heapanal.lisp {was Re: Removing files from tools/}: msg#00345
lisp.cmucl.devel
|
Subject: |
heapanal.lisp {was Re: Removing files from tools/} |
That's a tool I created for finding out what particular garbage wasn't
being collected. In any large Lisp system like the compiler, it's often
the case that large amounts of garbage may be retained due to various
reference "sneak paths".
What this code effectively does is create an "inverse heap" with a
database for each object of which objects references this.
The idea is that first you find some object that you think should't be
live, then you find out how that object is live, then you fix that
problem. With the compiler, the IR1/IR2 datastructures should never be
live when the compiler isn't running, so searching for objects of those
types is one way to find garbage objects. You might also see from
ROOM that there is a suspicious amount of a particular object type.
So this is potentially a useful facility, but obviously hasn't worked in
over ten years due to the Mach syscalls.
Rob
|
|