GOUBIER Thierry wrote:
What i'd be worried with is the high number of PackageTreePackageNodeModel->102250. Each node model suppose a NodeMorph, and so on... And, stef, I don't think your test was loading one hundred thousand packages, isn't it?
I'd look into the package tree structure and updates.
Thierry
In the past to investigate similar stuff I've used a bad hack like this... 1. In Workspace evaluate: Smalltalk at: #senders put: Bag new. 2. Define method... PackageTreePackageNodeModel class>>new | senderString | senderString := thisContext sender printString , '<--' , thisContext sender sender printString , '<--' , thisContext sender sender sender printString . "to whatever depth is useful" (Smalltalk at: #senders) add: senderString. ^ super new. I've also output the senderStrings to a log file and loaded into Excel to munge things for pattern matching. Very agricultural approach, but it turned up some results (though I can't remember what it was for.) However I've never actually plugged that sort of thing into #new, so YMMV. Also note that if you happen to step through the above code with the debugger, thisContext might not be set properly [1], although it works fine outside the debugger. [1] https://pharo.fogbugz.com/f/cases/12980/ cheers -ben
________________________________________ De : Pharo-dev [pharo-dev-bounces@lists.pharo.org] de la part de stepharo [stepharo@free.fr] Envoyé : dimanche 29 juin 2014 10:38 à : Pharo Development List Objet : [Pharo-dev] https://pharo.fogbugz.com/default.asp?13422
I did an 'Smalltalk allClasses collect:[:cl | cl -> cl allInstances size]' before starting a load and right after a load that just does not crash the image. I noticed the following number of new instances that were still being referenced (i.e. not garbage collected).
The following lists the number of _added_ instances during the load with the largest first. I include all of them but some are obviously more indicative than others.
Float->3580540 Point->2149989 Rectangle->818991 Array->573089 MorphExtension->309932 TableLayoutProperties->204571 ByteString->108891 OrderedCollection->107527 IdentityDictionary->103768 ImageMorph->102338 StringMorph->102318 Morph->102313 DependentsArray->102309 TableLayout->102308 RowLayout->102259 MorphTreeNodeMorph->102252 PackageTreePackageNodeModel->102250 Association->26405 Duration->14081 CompiledMethod->11191 MethodChangeRecord->11131 IdentitySet->10843 ....