On Fri, 2008-09-19 at 11:06 +0200, Marcus Denker wrote:
On 19.09.2008, at 10:42, Stéphane Ducasse wrote:
did you flush the changesets ?
That's important. Adrian lienhard sent this around some time ago some cleanup code. Here is an updated version:
ScriptLoader new cleaningCS. RequiredSelectors initialize. ProvidedSelectors initialize. LocalSends initialize. Utilities cleanseOtherworldlySteppers. Smalltalk organization removeEmptyCategories. SystemBrowser removeObsolete. TheWorldMenu removeObsolete. AppRegistry removeObsolete. MCFileBasedRepository flushAllCaches. MCDefinition clearInstances. Symbol compactSymbolTable. Set rehashAllSets. Smalltalk cleanOutUndeclared. Smalltalk garbageCollect.
--> 13.7 MB 3.9 was 15.6 MB
There is more code for cleaning in the "cleaning" category of ScriptLoader. #initialCleanup and #finalCleanup. (we should merge the code above in the cleanup methods)
The changesets are the majority of the space, another 100K or so comes from rehashing the sets. This is I think because the methodDictionaries are degenerating very fast when adding / replacing methods.
I had a look at it and SMSqueakMap default clearCaches. might be a candidate to add. Is there a reason why the cleanup code resides in ScriptLoader? Norbert