Hi Denis,

On Wed, Apr 20, 2016 at 9:15 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:

2016-04-20 17:47 GMT+02:00 Eliot Miranda <eliot.miranda@gmail.com>:
Hi Pavel,

On Apr 20, 2016, at 6:54 AM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:

That is not real amount of objects in the object memory:

count := 0.
object := 0 someObject.
[object == 0] whileFalse: [
�� �� count := count + 1.
�� �� object := object nextObject ].
count. "->724653"

Right. ��allObjects size is approximately equal to Object allSubInstances (but much faster to evaluate, since it makes only a single heap traversal).�� Class allSubInstances answers only classes, not those class's instances.

But my test was not about Object allSubInstances but about Object allSubclasses.
I supposed that "Class allSubInstances size" should equal "(Class allSubclasses flatCollect: [ :each |��each allInstances ]) size". But it is not. And it is surprised me. Interesting to know why.

I understand. I was answering Pavel's query.�� Your question was answered (albeit teasingly) by Ben: "Strange that its out by a factor of two. ��It's almost like each class is also an object ;)".�� Class allSubclasses includes only the metaclasses.�� Object allSubclasses includes the classes too.�� These two (from a Squeak image) are almost equal:


(Class withAllSubclasses asSet addAll: (Class allSubclasses collect: #soleInstance); yourself) size 6468
Object withAllSubclasses size 6456


Class withAllSubclasses first: 5 => an OrderedCollection(Class ProtoObject class Object class ObjectOut class ImageSegmentRootStub class)
Class withAllSubclasses last: 5 an OrderedCollection(ScSmiAddOp class ScSmiEqualOp class ScSmiLessOp class ScSmiLessOrEqualOp class ScSmiNotEqualOp class)
Object withAllSubclasses first: 5 => an OrderedCollection(Object BalloonState SoundCodec StandardFileMenuResult UndefinedObject)
Object withAllSubclasses last: 5 => an OrderedCollection(ScSmiAddOp class ScSmiEqualOp class ScSmiLessOp class ScSmiLessOrEqualOp class ScSmiNotEqualOp class)
_,,,^..^,,,_
best,��Eliot