[squeak-dev] ditching Monticello objects.

Adrian Lienhard adi at netstyle.ch
Thu Feb 12 08:11:23 UTC 2009


I've recently made a similar script for Pharo. See  
ScriptLoader>>cleanUpForRelease. This had brought the default image  
size below 10MB.

Adrian

On Feb 12, 2009, at 06:13 , John M McIntosh wrote:

> 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 at 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 at smalltalkconsulting.com>
> Corporate Smalltalk Consulting Ltd.  http:// 
> www.smalltalkconsulting.com
> = 
> = 
> = 
> = 
> = 
> ======================================================================
>
>
>
>




More information about the Squeak-dev mailing list