[etoys-dev] Redundant strings in image
Bert Freudenberg
bert at freudenbergs.de
Sun May 2 12:45:38 EDT 2010
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 -
More information about the etoys-dev
mailing list