joakim at joakimsandgren.com
Tue Apr 13 08:01:36 UTC 2010
This I could do. I already make my own "deep-copy" functions.
With the Sizeof function proposed by A. Repenning it could give me an
idea of a size.
I think I could try to handle myself the case where I have the real
instance or a pointer.
I think its quite "tactile" my object. I have staff, section, partial
section, measure, partial measure ,note group, note.
all these are (what I understand) "real" instances. but then for
example in the notes I have next note and preceding note, wich is then
so when I do the walker I dont look at them...
And in the end in all the slots there are integers or floats..., or
Strings. How do I get the size of a string ? length * x.
Le 12 avr. 10 à 20:22, Bill St. Clair a écrit :
> It seems to me that what you need would be partially your own
> data structure walker and partly a CCL-provided SIZEOF generic
> The SIZEOF generic function would take a single argument and return
> number of bytes used by that object alone, but not anything it
> references. Your function would walk one of your data structures,
> calling sizeof on each Lisp object that you consider to be part of
> one user-level data structure and summing all the results.
> I sent in my last reply the code for SIZEOF on a CCL standard CLOS
> instance. Adding a full-featured SIZEOF generic function to CCL would
> likely be useful, and is probably not very difficult. You could do it
> yourself with a little routing around in the CCL source code. Or maybe
> somebody else on the list would like to make a portable version.
> On 4/12/10 10:16AM, Joakim Sandgren 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
>> as you are always confronted with either big size and high speed, or
>> smaller size and more calculations and then slower speed.
>> 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
>>> garbage, how
>>> much memory would be freed by the GC ?"
>>> (let* ((obj (make-instance ...)))
>>> (let* ((with-obj (%precise-size-of-allocated-memory-at-the-moment)))
>>> (setq obj nil)
>>> (let* ((without-obj (%precise-size-of-allocated-memory-at-the-
>>> (- 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
>>> 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
>>> 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 <mailto:joakim at joakimsandgren.com>>
>>>> Are there a way to see how big in Kb or bytes a clos object is ?
>>>> Joakim Sandgren
>>>> joakim sandgren musik
>>>> 42, rue de Maubeuge
>>>> 75009 Paris
>>>> +33 (0)1 45 26 43 90
>>>> info at joakimsandgren.com <mailto:info at joakimsandgren.com>
>> Joakim Sandgren
>> joakim sandgren musik
>> 42, rue de Maubeuge
>> 75009 Paris
>> +33 (0)1 45 26 43 90
>> info at joakimsandgren.com <mailto:info at joakimsandgren.com>
>> http://www.joakimsandgren.com <http://www.joakimsandgren.com/>
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
joakim sandgren musik
42, rue de Maubeuge
+33 (0)1 45 26 43 90
info at joakimsandgren.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Openmcl-devel