[Pharo-project] Fwd: [squeak-dev] ditching Monticello objects.
Begin forwarded message:
From: John M McIntosh <johnmci@smalltalkconsulting.com> Date: February 12, 2009 6:13:50 AM CEST To: Keith Hodges <keith_hodges@yahoo.co.uk> Cc: The general-purpose Squeak developers list <squeak-dev@lists.squeakfoundation.org
Subject: Re: [squeak-dev] ditching Monticello objects. Reply-To: johnmci@smalltalkconsulting.com, The general-purpose Squeak developers list <squeak-dev@lists.squeakfoundation.org>
Ok, well I did
I've been collecting lists of pruning methods so..
ScrollBar initializeImagesCache. GradientFillStyle initPixelRampCache. NaturalLanguageFormTranslator classPool at: #CachedTranslations put: nil. NaturalLanguageTranslator resetCaches. PartsBin clearThumbnailCache. PaintBoxMorph classPool at: #ColorChart put: nil. PaintBoxMorph classPool at: #Prototype put: nil. ImageMorph classPool at: #DefaultForm put: (Form extent: 1@1 depth: 1). Utilities classPool at: #ScrapsBook put: nil. Project allInstancesDo: [ :each | each setThumbnail: nil ]. ScriptingSystem stripGraphicsForExternalRelease. ProjectHistory currentHistory initialize. Utilities zapUpdateDownloader. Smalltalk forgetDoIts. Behavior flushObsoleteSubclasses. CommandHistory allInstancesDo: #initialize. ChangeSorter removeChangeSetsNamedSuchThat: [ :each | true ]. ChangeSet resetCurrentToNewUnnamedChangeSet. MethodChangeRecord allInstancesDo: [ :x | x noteNewMethod: nil ]. RequiredSelectors initialize. ProvidedSelectors initialize. LocalSends initialize. SendCaches initializeAllInstances. Utilities cleanseOtherworldlySteppers. Smalltalk organization removeEmptyCategories. Browser initialize. SMSqueakMap default purge. SystemBrowser removeObsolete. TheWorldMenu removeObsolete. AppRegistry removeObsolete. FileServices removeObsolete. MCFileBasedRepository flushAllCaches. MCDefinition clearInstances. Undeclared removeUnreferencedKeys. Smalltalk flushClassNameCache. 3 timesRepeat: [ Smalltalk garbageCollect. Symbol compactSymbolTable ]. Set rehashAllSets. Smalltalk garbageCollect.
I added these ones.
ChangeSorter initializeChangeSetCategories. MCWorkingCopy inspect. MCRepositoryGroup inspect. MCCacheRepository inspect.
and cleaned up the class instance variables & any class vars via the inspect.
That removed all the MC packages and MC http repositories from the MC Browser
gave me back 4 megabytes of image space.
Well brute force, still 4 mb wonderful to get back this late in the project.
On 11-Feb-09, at 6:18 PM, Keith Hodges wrote:
John M McIntosh wrote:
I'm building an image for a limited memory hardware platform.
At the point here where I want to *deploy* things and I can see that various parts of Monticello are consuming well over a megabyte of memory to retain MCVersionInfo instances, MCMethodDefinition(s), time stamps, uuids, etc etc
I'm wondering if anyone has some code to strip all that out thus returning I suspect a couple of MB back for more constructive usage? You may want to look into the cleanUp/freeSomeSpace conventions. MC1.5 has a few implemented. There are many more available from http://bugs.squeak.org/view.php?id=7244
Keith
-- = = = = = ====================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Corporate Smalltalk Consulting Ltd. http:// www.smalltalkconsulting.com = = = = = ======================================================================
participants (1)
-
Stéphane Ducasse