Some collection protocols were optimized so your result makes sense. The current performance bottleneck for your application definitely comes from the use of isKindOf: based on your profiles. inheritsFrom: is called by isKindOf: I guess.
Now be very careful the current GC has very strange side effect. Did you perform manually a full GC before each bench ? 2014-06-08 20:18 GMT+02:00 Hilaire Fernandes <[email protected]>: > I have run a Sketch script on DRGeo on Pharo 1.4 and 3.0 > The script involved a lot of collection operations and object comparison. > > > The leaves results are strange, because the script is the same: > > > On Pharo 1.4: > > **Leaves** > 14.2% {97ms} Array class(Behavior)>>inheritsFrom: > 11.4% {77ms} OrderedCollection(SequenceableCollection)>>hasEqualElements: > 9.7% {66ms} DrGPointIntersectionItem>>= > 9.6% {65ms} DrGPointIntersectionItem(DrGMathItem)>>parentsEqual: > 5.0% {34ms} OrderedCollection>>at: > 5.0% {34ms} Array(SequenceableCollection)>>first > 4.7% {32ms} DrGPointFreeItem(DrGMathItem)>>= > 3.5% {24ms} OrderedCollection(SequenceableCollection)>>= > 2.7% {18ms} Array(Object)>>isKindOf: > 2.4% {16ms} OrderedCollection>>do: > 2.4% {16ms} OrderedCollection>>size > 1.8% {12ms} > OrderedCollection(SequenceableCollection)>>indexOf:startingAt:ifAbsent: > 1.2% {8ms} OrderedCollection>>ensureBoundsFrom:to: > 1.2% {8ms} SmallInteger(Number)>>negative > > > > On Pharo3: > > **Leaves** > 15.8% {168ms} Array class(Behavior)>>inheritsFrom: > 11.4% {121ms} DrGCircle2ptsItem(DrGMathItem)>>= > 8.3% {88ms} OrderedCollection>>size > 8.3% {88ms} DrGCircle2ptsItem(DrGMathItem)>>parentsEqual: > 7.5% {80ms} OrderedCollection>>at: > 7.1% {76ms} OrderedCollection(SequenceableCollection)>>= > 6.6% {70ms} Array(SequenceableCollection)>>first > 6.0% {63ms} DrGPointIntersectionItem>>= > 5.6% {59ms} OrderedCollection(SequenceableCollection)>>hasEqualElements: > 1.9% {20ms} OrderedCollection>>do: > 1.9% {20ms} OrderedCollection>>ensureBoundsFrom:to: > 1.7% {18ms} OrderedCollection(Object)>>isKindOf: > 1.5% {16ms} > OrderedCollection(SequenceableCollection)>>indexOf:startingAt:ifAbsent: > 1.5% {16ms} SmallInteger(Number)>>negative > > > > > True in between DrGeo changes a bit but normally not in the part involved: > > > -- > Dr. Geo http://drgeo.eu > iStoa - https://launchpad.net/istoa > > >
