It's astonishing to me how many copies we have of some strings in the new dev image. They add up to more than 3 MB wasted space! See for yourself:
===================== | f strings sorted count wasted | strings := Bag new. String allSubInstances do: [:s | strings add: s] displayingProgress: 'counting ...'. sorted := SortedCollection sortBlock: [:a :b | a first >= b first]. wasted := 0. strings asSet asArray do: [:s | count := strings occurrencesOf: s. count > 1 ifTrue: [ wasted := wasted + (count - 1 * s byteSize). sorted add: {count*s byteSize. count. s}]] displayingProgress: 'sorting ...'. f := FileStream newFileNamed: 'bla.txt'. [sorted do: [:each | f nextPutAll: '==============='; cr. each do: [:elem | f nextPutAll: elem asString] separatedBy: [f space]. f cr] displayingProgress: 'writing ...'. ] ensure: [f close]. wasted asStringWithCommas =====================
In comparison, the Etoys 4.0 release image had "only" 600 KB wasted by this.
Any idea where those strings could come from?
- Bert -