On Wed, Sep 22, 2010 at 12:34 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
On Wed, Sep 22, 2010 at 12:12 PM, Henrik Johansen < henrik.s.johansen@veloxit.no> wrote:
On Sep 22, 2010, at 9:59 40AM, Adrian Lienhard wrote:
Some notes:
- What should be answered for small ints? 1 sizeInMemory -->8. That's
wrong. Shouldn't this answer 0?
Philosophical question really, imo both 4 (Again, in 32bit images at least) and 0 would be "correct" answers in their own ways. 8 is definitely wrong though :) The method comment should probably highlight which definition is used.
So....what should we consider for SmallInteger ? 4 bytes or 0 bytes?
I would like to compute the really used memory.
thanks
mariano
At the beginning I also thought to have 4, instead of 0. The problem is that if you put 4 and you have an object with and instVar that it is a SmallInteger, it will be counted twice, when actually it is only one. That's why I thoguht 0 was better, since I want the really occupated memory. On the other hand, if you do "4 sizeInMemory" and see zero, I have to admit it is a litlte confusing.
The problem is that if I do for example:
Class >> spaceForInstances | totalSize | totalSize := 0. self allInstancesDo: [ :inst | totalSize := totalSize + inst sizeInMemory. ]. ^ totalSize
SmallInteger spaceForInstances ->> 0
So I don't know...maybe we have to answer 4 instead of 0?
Adrian what do you think?
- In the line contentBytes := contentBytes + (self basicSize *
bytesPerElement), why is contentBytes added because it should be always 0 because self class instSize should return 0 in case of variable classes. Or do I miss something? You can have instance variables in variable classes:
ArrayedCollection variableSubclass: #TallyArray instanceVariableNames: 'tally' classVariableNames: '' poolDictionaries: '' category: 'Collections-Arrayed'
TallyArray instSize 1 (TallyArray new: 5) basicSize 5
Sure, they're not used very often in Squeak/Pharo since become: is so slow, but there's no theoretical reason why you can't for example implement Set as a variable subclass with a tally inst var.
- Please remove the inline comment "inst vars"; if a comment is needed
it should go into the main comment. I agree, should be self-explanatory.
Cheers, Henry _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project