logo       

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






<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise