[squeak-dev] The Trunk: Collections-cmm.466.mcz
Chris Muller
asqueaker at gmail.com
Mon Dec 26 20:14:51 UTC 2011
> Why is #arrayType on the class side?
I must admit I wrung my hands about this decision -- the answer is
"consistency" with OrderedCollection, which needs its #arrayType on
the class side for the case where the user wants to pre-allocate extra
slots. In that case, the initial 'array' is allocated in the
class-side constructor (see OrderedCollection class>>#new:).
However, HashedCollection doesn't do it that way, so it probably
_could_ have gone on the instance-side. Still, I thought there was no
harm in being consistent with OC.
> What are the practical alternatives of
> Array as #arrayType?
To have a compactable Array class. WbArray is a subclass of Array
included with Magma that can, therefore, be used with the
WriteBarrier. WbOrderedCollection, WbSet and WbDictionary follow by
simply overriding their #arrayType which, in at least the app I'm
measuring, affords a 20X improvement in application performance.
- Chris
More information about the Squeak-dev
mailing list
|