[Openmcl-devel] memory

Gail Zacharias gz at clozure.com
Mon Apr 12 09:10:43 PDT 2010


idom-heap-utilization would give you this kind of information, in the
aggregate.  It won't tell you how much memory a particular object owns
(directly or indirectly), but typically it can tell you how much
memory is owned by different types of objects.

Unfortunately, idom-heap-utilization only works on linux x8664 core
files...   It would be a relatively uncomplicated learn-ccl-internals
project to port it to other architectures, if anybody is interested.

On Mon, Apr 12, 2010 at 10:16 AM, Joakim Sandgren
<joakim at joakimsandgren.com> wrote:
> In my case I have an object that contains all structures and data for a
> whole musical composition.
> parts, measures, notes, pitchvalues mapping tables...
> It would be good to be able to see the "footprint" of different types of
> solution.
> as you are always confronted with either big size and high speed, or smaller
> size and more calculations and then slower speed.
> sincerely
> joakim
>
> Le 12 avr. 10 à 06:45, Gary Byers a écrit :
>
> When people ask questions like this, they usually means something
> like "what's the total size of this object, plus the size of all things that
> it transitively and uniquely references ?"
>
> Another way of asking that is to ask "if the object in question became
> garbage, how
> much memory would be freed by the GC ?"
>
> (let* ((obj (make-instance ...)))
> (gc)
> (let* ((with-obj (%precise-size-of-allocated-memory-at-the-moment)))
>   (setq obj nil)
>   (gc)
>   (let* ((without-obj (%precise-size-of-allocated-memory-at-the-moment)))
>     (- with-obj without-obj))))
>
> There's no such function as the one that I'm calling
> %PRECISE-SIZE-OF-ALLOCATED-MEMORY-AT-THE-MOMENT; it's very hard to measure
> this in CCL (because of threads and because of other issues.)  We're also
> assuming that OBJ is the only thing that becomes garbage between the two
> GCs, and we're assuming that that object isn't sitting in some machine
> register even after we set the variable OBJ to NIL.  Neither of those
> assumptions is valid.
>
> I don't want to say that there's no reliable way to answer this question in
> general, but it's much, much harder to answer than it might appear to be at
> first glance.
>
> There are some heap-analysis utilities described at
> <http://trac.clozure.com/ccl/wiki/MemoryUtils> (some of them are currently
> x8664-Linux-specific); none of them try to answer this question, but they do
> try to answer some similar questions.
>
>
>
> --On April 11, 2010 4:50:23 PM +0200 Joakim Sandgren
> <joakim at joakimsandgren.com> wrote:
>
> Hi,
>
> Are there a way to see how big in Kb  or bytes a clos object is ?
>
>
> sincerely
>
> joakim
>
>
>
>
>
>
>
>
> Joakim Sandgren
>
> joakim sandgren musik
>
> 42, rue de Maubeuge
>
> 75009 Paris
>
> France
>
> +33 (0)1 45 26 43 90
>
> info at joakimsandgren.com
>
> http://www.joakimsandgren.com
>
>
>
>
>
>
>
>
> Joakim Sandgren
> joakim sandgren musik
> 42, rue de Maubeuge
> 75009 Paris
> France
> +33 (0)1 45 26 43 90
> info at joakimsandgren.com
> http://www.joakimsandgren.com
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
>



More information about the Openmcl-devel mailing list