[squeak-dev] Re: Profile interpretation

Bert Freudenberg bert at freudenbergs.de
Mon Jul 25 11:23:55 UTC 2011


On 24.07.2011, at 18:42, Hilaire Fernandes wrote:

> Andreas,
> 
> As we are writing about bogus, you can explain me one aspect of the
> profile I found hard to interpret. If you look at this profile snippet
> (I hope it will print in a readable form):
> 
>>    |      |                          16.7% {2692ms} DrGeo>>updateDirtyCostumes
>>    |      |                            16.6% {2686ms} DrGAngle3PointsCostume(DrGMathItemCostume)>>update
>>    |      |                              10.4% {1674ms} DrGAngle3PointsCostume>>redraw
>>    |      |                                |9.4% {1513ms} DrGAngle3PointsCostume>>redrawShape
>>    |      |                                |  9.3% {1496ms} DrGAngle3PointsCostume>>redrawArc
>>    |      |                                |    9.2% {1485ms} DrGArcMorph>>center:radius:origin:length:
>>    |      |                                |      8.6% {1395ms} DrGArcMorph(PolygonMorph)>>computeBounds
>>    |      |                                |        7.8% {1255ms} DrGArcMorph(PolygonMorph)>>curveBounds
>>    |      |                                |          7.6% {1231ms} DrGArcMorph(PolygonMorph)>>lineSegmentsDo:
>>    |      |                                |            7.2% {1162ms} DrGArcMorph(PolygonMorph)>>coefficients
>>    |      |                                |              4.3% {687ms} Cubic>>bestSegments
>>    |      |                                |                2.8% {447ms} Cubic>>calcEnoughSegments
>>    |      |                                |                  |1.8% {297ms} Cubic>>enough:withMeasure:withIn:
>>    |      |                                |                  |  1.8% {291ms} Cubic>>measureFor:
>>    |      |                                |                  |    1.6% {251ms} Cubic(SequenceableCollection)>>polynomialEval:
>>    |      |                                |                1.5% {239ms} Cubic>>honeIn:
>>    |      |                              3.1% {501ms} DrGSegmentCostume>>redraw
> 
> 
> The way the message calls are nested in the profile result, for me it
> says: DrGSegmentCostume>>redraw is called in the context of
> DrGAngle3PointsCostume(DrGMathItemCostume)>>update which is absolutely
> not the case. So what is it?

The class in parenthesis indicates the actual compiled method executed. There is no DrGAngle3PointsCostume>>update but only DrGMathItemCostume>>update. DrGSegmentCostume also inherits #update from DrGMathItemCostume which sends "self redraw". So this looks confusing but okay to me.

Possibly MessageTally should count the different receiver classes separately. This is what Andreas alluded to - it's the same compiled method but different receiver classes for the method context.

- Bert -





More information about the Squeak-dev mailing list