Well, here is what I do get: (I guess some stuff scrolled up too far in the
transcript)

Image size before cleaning HashedCollection : 320691776----SNAPSHOT----an
Array(1 August 2013 12:21:29 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119932535
Image size after cleaning HashedCollection : 323444020Image size before
cleaning RecentMessageList : 323444020----SNAPSHOT----an Array(1 August
2013 12:21:46 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119936948
Image size after cleaning RecentMessageList : 323492924Image size before
cleaning ChangeSet : 323492924----SNAPSHOT----an Array(1 August 2013
12:22:01 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937094
Image size after cleaning ChangeSet : 323557656Image size before cleaning
SystemOrganizer : 323557656----SNAPSHOT----an Array(1 August 2013 12:22:16
am) Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937240
Image size after cleaning SystemOrganizer : 323621024Image size before
cleaning MCDefinition : 323621024----SNAPSHOT----an Array(1 August 2013
12:22:31 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937386
Image size after cleaning MCDefinition : 323685312Image size before
cleaning Behavior : 323685312----SNAPSHOT----an Array(1 August 2013
12:22:46 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937532
Image size after cleaning Behavior : 323749188Image size before cleaning
Workspace : 323749188----SNAPSHOT----an Array(1 August 2013 12:23:01 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937678
Image size after cleaning Workspace : 323797016Image size before cleaning
AppRegistry : 323797016----SNAPSHOT----an Array(1 August 2013 12:23:16 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937824
Image size after cleaning AppRegistry : 323860980Image size before cleaning
MCFileBasedRepository : 323860980----SNAPSHOT----an Array(1 August 2013
12:23:34 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119937970
Image size after cleaning MCFileBasedRepository : 323924988Image size
before cleaning ClassOrganizer : 323924988----SNAPSHOT----an Array(1 August
2013 12:23:51 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938116
Image size after cleaning ClassOrganizer : 323989128Image size before
cleaning FreeTypeCache : 323989128----SNAPSHOT----an Array(1 August 2013
12:24:06 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938262
Image size after cleaning FreeTypeCache : 324053128Image size before
cleaning NOCCompletionTable : 324053128----SNAPSHOT----an Array(1 August
2013 12:24:21 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938408
Image size after cleaning NOCCompletionTable : 324117108Image size before
cleaning NaturalLanguageTranslator : 324117108----SNAPSHOT----an Array(1
August 2013 12:24:36 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938554
Image size after cleaning NaturalLanguageTranslator : 324181356Image size
before cleaning ScrollBar : 324181356----SNAPSHOT----an Array(1 August 2013
12:24:52 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938700
Image size after cleaning ScrollBar : 324241728Image size before cleaning
FileServices : 324241728----SNAPSHOT----an Array(1 August 2013 12:25:07 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938846
Image size after cleaning FileServices : 324311268Image size before
cleaning EventManager : 324311268----SNAPSHOT----an Array(1 August 2013
12:25:23 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119938992
Image size after cleaning EventManager : 324375192Image size before
cleaning PasteUpMorph : 324375192----SNAPSHOT----an Array(1 August 2013
12:25:38 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119939138
Image size after cleaning PasteUpMorph : 324439164Image size before
cleaning BitBlt : 324439164----SNAPSHOT----an Array(1 August 2013 12:25:54
am) Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119939284
Image size after cleaning BitBlt : 324156860Image size before cleaning
GradientFillStyle : 324156860----SNAPSHOT----an Array(1 August 2013
12:26:11 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119939430
Image size after cleaning GradientFillStyle : 324389584Image size before
cleaning NaturalLanguageFormTranslator : 324389584----SNAPSHOT----an
Array(1 August 2013 12:26:26 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119939576
Image size after cleaning NaturalLanguageFormTranslator : 324460080Image
size before cleaning ProcessBrowser : 324460080----SNAPSHOT----an Array(1
August 2013 12:26:40 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119939722
Image size after cleaning ProcessBrowser : 324524292Image size before
cleaning StrikeFont : 324524292----SNAPSHOT----an Array(1 August 2013
12:26:56 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119939868
Image size after cleaning StrikeFont : 324588200Image size before cleaning
MCDataStream : 324588200----SNAPSHOT----an Array(1 August 2013 12:27:11 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119940014
Image size after cleaning MCDataStream : 324652584Image size before
cleaning CompiledMethod : 324652584----SNAPSHOT----an Array(1 August 2013
12:27:27 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119940160
Image size after cleaning CompiledMethod : 324716520Image size before
cleaning SmalltalkImage : 324716520----SNAPSHOT----an Array(1 August 2013
12:27:49 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119940306
Image size after cleaning SmalltalkImage : 324764312Image size before
cleaning Symbol : 324764312----SNAPSHOT----an Array(1 August 2013 12:28:07
am) Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119940452
Image size after cleaning Symbol : 324787420Image size before cleaning
Browser : 324787420----SNAPSHOT----an Array(1 August 2013 12:28:23 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119940598
Image size after cleaning Browser : 324852504Image size before cleaning
MCMethodDefinition : 324852504----SNAPSHOT----an Array(1 August 2013
12:28:39 am)
Pharo-DripfeedIt-Magritte3-OpenDBX_20130729_1154-Prod_Cleaning.image
priorSource: 119940744
Image size after cleaning MCMethodDefinition : 324916888

The image actually grew bigger...

Now trying the flush caches thing.

Phil


On Wed, Jul 31, 2013 at 8:53 PM, Mariano Martinez Peck <
[email protected]> wrote:

> OK, this was was my experiment....
>
> Image fresh with all my app and dependencies loades: 30MB
>
> After using it for some days/weeks: 160MB.
>
> SpaceTally new printSpaceAnalysis showed:
>
> Class                                          code space # instances
>  inst space     percent   inst average size
> ByteString                                           2785      413144
> 116244078       69.90              281.36
> Array                                                3712      181772
>   8466668        5.10               46.58
> ByteArray                                            8574        1319
>   8186802        4.90             6206.82
> Bitmap                                               3653         303
>   6656340        4.00            21968.12
> CompiledMethod                                      22467       90554
>   5685374        3.40               62.78
>
>
> After executing ImageCleaner cleanUpForRelease: 36MB
>
> Then...I searched which part of #cleanUpForRelease: was making the
> difference, and it was:
>
> Smalltalk cleanUp: true except: #() confirming: false.
>
> So now it was time to know WHICH class did the diference, so I modified
> #cleanUp: aggressive except: exclusions confirming: aBool
>
> in these lines:
>
> "Run the cleanup code"
> classes
> do:[:aClass|
>  Transcript show: 'Image size before cleaning ', aClass name, ' : ',
> Smalltalk imagePath asFileReference size asString.
> aClass cleanUp: aggressive.
>  3 timesRepeat: [Smalltalk garbageCollect].
> Smalltalk snapshot: true andQuit: false.
> Transcript show: 'Image size after cleaning ', aClass name, ' : ',
> Smalltalk imagePath asFileReference size asString.
>  ]
> displayingProgress: [:aClass| 'Cleaning up in ', aClass name].
>  I then opened a Transcript, and evaluated
>
> Smalltalk cleanUp: true except: #() confirming: false.
>
> I went to prepare Mate, and when I come back, the result was, of course:
>
> "Image size after cleaning MCFileBasedRepository : 39744008"
>
> That clean up ends up doing:
>
> flushAllCaches
>  self allSubInstancesDo: [:ea | ea flushCache]
> So it sends #flushCache to all instances of MCHttpRepository and
> MCFileBasedRepository.
>
> Now what I wanted to see if it there was a particular repo that could take
> most of the space (like package-cache).
> And indeed, it was...I modified #flushCaches to:
>
> flushAllCaches
>  | file |
> file := 'repos.txt' asFileReference writeStream text.
> self allSubInstancesDo: [:each |
>  file nextPutAll: 'Image size before cleaning ', each printString, ' : ',
> Smalltalk imagePath asFileReference size asString; cr.
>  each flushCache.
> 3 timesRepeat: [Smalltalk garbageCollect].
> Smalltalk snapshot: true andQuit: false.
>  file nextPutAll: 'Image size after cleaning ', each printString, ' : ',
> Smalltalk imagePath asFileReference size asString;cr.
>  ].
> file flush; close.
> And then I looked in the 'repos.txt' file. My package cache repo cleaned
> 60 MB. Glorp cleaned 35MB. Seaside30 cleaned 10MB.
> So...cleaning cache of just 3 repos frees approx 100MB.
>
> The question is....can we flush the cache safely? If they are called
> "cache", then I guess yes, we can.
>
> Thoughts?
>
> Thanks,
>
>
>
> On Wed, Jul 31, 2013 at 10:48 AM, Mariano Martinez Peck <
> [email protected]> wrote:
>
>> Guys, I have images also with seaside, magritte, glorp, postgresV2, etc
>> and it is also around 200MB.
>> I will try to do some research today and let you know.
>>
>> Cheers,
>>
>>
>> On Tue, Jul 30, 2013 at 8:55 AM, Marcus Denker <[email protected]>wrote:
>>
>>>
>>> On Jul 30, 2013, at 1:49 PM, "[email protected]" <[email protected]>
>>> wrote:
>>>
>>> > the changes file contained passwords and I replaced the text.  So
>>> offsets may be wrong due to that.
>>> >
>>> Yes, the first thing I wanted to do is to recompile everything. Does not
>>> work.
>>>
>>> > Memorymonitor is not doing fanct stuff. It just counts instances.
>>> >
>>> Yes, but maybe it holds on to these instances?
>>>
>>>         Marcus
>>>
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>

Reply via email to