[squeak-dev] Re: Request for adive on Profile

Hilaire Fernandes hilaire.fernandes at edu.ge.ch
Sat Jul 23 10:17:43 UTC 2011


And to compare the numbers, here is the profile of the same DrGeo sketch
interaction but on a PC workstation. Very different indeed.

Hilaire
-------------- next part --------------
 - 15943 tallies, 16166 msec.

**Tree**
--------------------------------
Process: (60) Input events fetching process: [delaySemaphore wait] in Delay>>wait
--------------------------------
26.2% {4232ms} InputEventPollingFetcher(InputEventFetcher)>>eventLoop
  25.7% {4157ms} InputEventPollingFetcher>>waitForInput
    25.7% {4157ms} Delay>>wait
      25.5% {4128ms} primitives
--------------------------------
Process: (40s)  831520768: nil
--------------------------------
51.4% {8302ms} WorldState>>doOneCycleFor:
  48.9% {7903ms} WorldState>>doOneCycleNowFor:
    |25.9% {4191ms} WorldState>>displayWorldSafely:
    |  |25.9% {4191ms} PasteUpMorph>>displayWorld
    |  |  25.9% {4191ms} PasteUpMorph>>privateOuterDisplayWorld
    |  |    25.9% {4190ms} WorldState>>displayWorld:submorphs:
    |  |      24.6% {3975ms} WorldState>>drawWorld:submorphs:invalidAreasOn:
    |  |        22.3% {3607ms} FormCanvas(Canvas)>>fullDrawMorph:
    |  |          22.3% {3605ms} FormCanvas(Canvas)>>fullDraw:
    |  |            22.3% {3603ms} DrGeoWindow(Morph)>>fullDrawOn:
    |  |              18.2% {2945ms} DrGeoWindow(Morph)>>drawSubmorphsOn:
    |  |                |17.6% {2837ms} FormCanvas(Canvas)>>fullDrawMorph:
    |  |                |  17.4% {2819ms} FormCanvas(Canvas)>>fullDraw:
    |  |                |    17.3% {2797ms} ToolDockingBarMorph(Morph)>>fullDrawOn:
    |  |                |      14.9% {2406ms} DrGDrawable(PasteUpMorph)>>drawSubmorphsOn:
    |  |                |        13.0% {2109ms} FormCanvas(Canvas)>>fullDrawMorph:
    |  |                |          12.7% {2060ms} FormCanvas(Canvas)>>fullDraw:
    |  |                |            12.3% {1981ms} DrGSegmentMorph(Morph)>>fullDrawOn:
    |  |                |              6.6% {1069ms} FormCanvas(Canvas)>>drawMorph:
    |  |                |                |5.9% {952ms} FormCanvas(Canvas)>>draw:
    |  |                |                |  3.5% {573ms} DrGArcMorph(DrGPolylineMorph)>>drawOn:
    |  |                |                |    |3.5% {563ms} DrGArcMorph(PolygonMorph)>>drawBorderOn:usingEnds:
    |  |                |                |    |  1.1% {180ms} SimpleBorder>>drawLineFrom:to:on:
    |  |                |                |  1.8% {293ms} DrGLabelMorph(StringMorph)>>drawOn:
    |  |                |                |    1.8% {284ms} FormCanvas(Canvas)>>drawString:in:font:color:
    |  |                |                |      1.7% {283ms} FormCanvas>>drawString:from:to:in:font:color:
    |  |                |              2.4% {394ms} FormCanvas>>isVisible:
    |  |              1.6% {263ms} FormCanvas(Canvas)>>drawMorph:
    |  |                |1.6% {251ms} FormCanvas(Canvas)>>draw:
    |  |                |  1.5% {242ms} DrGeoWindow(Morph)>>drawOn:
    |  |                |    1.4% {230ms} FormCanvas(Canvas)>>fillRectangle:fillStyle:borderStyle:
    |  |                |      1.0% {162ms} SimpleBorder>>frameRectangle:on:
    |  |              1.2% {191ms} DrGeoWindow(SystemWindow)>>drawDropShadowOn:
    |22.7% {3673ms} HandMorph>>processEvents
    |  21.5% {3468ms} HandMorph>>handleEvent:
    |    19.7% {3178ms} HandMorph>>sendMouseEvent:
    |      |19.7% {3178ms} HandMorph>>sendEvent:focus:clear:
    |      |  18.7% {3030ms} HandMorph>>sendFocusEvent:to:clear:
    |      |    18.6% {3015ms} DrGDrawable(Morph)>>handleFocusEvent:
    |      |      18.6% {3015ms} DrGDrawable(Morph)>>handleEvent:
    |      |        18.6% {3004ms} MouseMoveEvent>>sentTo:
    |      |          18.6% {3004ms} DrGDrawable>>handleMouseMove:
    |      |            18.5% {2995ms} DrGDrawable>>mouseMove:
    |      |              18.2% {2937ms} DrGSelectTool(DrGDynamicTool)>>handleMouseAt:
    |      |                18.1% {2933ms} DrGSelectToolStateDragged>>handleMouseAt:
    |      |                  18.1% {2923ms} DrGeoDomain>>moveEvent:inDirection:withDirty:
    |      |                    18.0% {2915ms} DrGeoDomain>>updateDirty:
    |      |                      16.8% {2721ms} DrGeoDomain(Object)>>triggerEvent:
    |      |                        16.7% {2692ms} WeakMessageSend>>value
    |      |                          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
    |      |                                |2.1% {340ms} DrGSegmentMorph>>from:to:
    |      |                                |  1.6% {257ms} DrGSegmentMorph(PolygonMorph)>>computeBounds
    |      |                                |    1.2% {195ms} DrGSegmentMorph(Morph)>>changed
    |      |                                |      1.1% {178ms} DrGSegmentMorph(Morph)>>invalidRect:
    |      |                                |        1.1% {178ms} DrGSegmentMorph(Morph)>>invalidRect:from:
    |      |                                |          1.1% {177ms} DrGDrawable(PasteUpMorph)>>invalidRect:from:
    |      |                                |            1.1% {174ms} DrGDrawable(Morph)>>invalidRect:from:
    |      |                              2.1% {336ms} DrGPointCostume>>redraw
    |      |                              1.1% {171ms} DrGValueCostume>>redraw
    |    1.6% {257ms} MouseOverHandler>>processMouseOver:
    |      1.4% {233ms} MouseOverHandler>>handleAsMouseOver:
    |        1.4% {233ms} HandMorph>>handleEvent:
    |          1.4% {230ms} HandMorph>>sendMouseEvent:
    |            1.4% {230ms} HandMorph>>sendEvent:focus:clear:
    |              1.1% {171ms} HandMorph>>sendFocusEvent:to:clear:
    |                1.0% {165ms} DrGDrawable(Morph)>>handleFocusEvent:
    |                  1.0% {164ms} DrGDrawable(Morph)>>handleEvent:
    |                    1.0% {164ms} MouseEvent>>sentTo:
    |                      1.0% {164ms} DrGDrawable(Morph)>>handleMouseOver:
    |                        1.0% {164ms} DrGDrawable(Morph)>>containsPoint:event:
    |                          1.0% {162ms} DrGDrawable(Morph)>>fullBounds
  2.5% {398ms} WorldState>>interCyclePause:
    2.5% {398ms} Delay>>wait
      1.7% {283ms} primitives
--------------------------------
Process: (10)   71827456: ProcessorScheduler class>>idleProcess
--------------------------------
8.1% {1306ms} ProcessorScheduler class>>idleProcess
--------------------------------
Process: (50)  959184896: WeakArray class>>finalizationProcess
--------------------------------
14.3% {2317ms} WeakArray class>>finalizationProcess
  13.9% {2252ms} primitives

**Leaves**
27.3% {4411ms} Delay>>wait
13.9% {2252ms} WeakArray class>>finalizationProcess
8.1% {1306ms} ProcessorScheduler class>>idleProcess
2.1% {337ms} Point>>+
1.3% {209ms} Point>>*
1.2% {199ms} Float(Number)>>adaptToPoint:andSend:
1.2% {195ms} Rectangle>>right
1.2% {190ms} Rectangle>>setOrigin:corner:
1.2% {190ms} Rectangle class>>origin:corner:
1.2% {187ms} Rectangle>>left

**Memory**
	old			+347,748 bytes
	young		+16,292 bytes
	used		+364,040 bytes
	free		-364,040 bytes

**GCs**
	full			0 totalling 0ms (0.0% uptime)
	incr		3571 totalling 1,509,925ms (9340.0% uptime), avg 423.0ms
	tenures		7 (avg 510 GCs/tenure)
	root table	0 overflows



More information about the Squeak-dev mailing list