[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to ask "how big is it?"

I've used the document examiner to search for this, without any luck.  Does
anyone have a utility that grovels over an object in memory and reports on how
much storage it occupies?  I found SYS:%STRUCTURE-TOTAL-SIZE, but this doesn't
chase pointers (e.g. to include all objects accessible in a linked

It would be nice if this thing knew enough about the system that I could tell
it not to chase certain kinds of pointers.  That is, I realize I don't really
want everything that's accessible from some object (e.g. if it gets to a
symbol, I probably don't want to include that symbol's package and everything
accessible from that package).

I've got a circuit simulator that builds a large datastructure, and right now,
I only have rough estimates of how large this datastructure really is.  The
program generates a lot of garbage, so the information that CL:TIME gives me
isn't indicative.  I suppose if I consed it all in one area and then did
something with the garbage collector, I could find out.  Alternatively, I
could write a special purpose thing which knows about my datatypes and uses
SYS:%STRUCTURE-TOTAL-SIZE over and over again.  But is there a simpler way?
I'd like to ask for this kind of information fairly often, and not have to
modify this utility every time I add a new datatype to my program.

- Mark Shirley