On Thu, Apr 5, 2018, 16:09 Henrik Sperre Johansen <henrik.s.johansen@veloxit.no> wrote:
HilaireFernandes wrote
> After some more investigation, I think it is not the greated bottleneck.
>
> When I render points not as discs but as Square, Athens is happy. I
> guess the Cairo way of doing this is very slow because its seems Cairo
> does not come with dedicated disc rendering code, it must be render with
> portion of arc, as far as I remember.
>
> If I prevent to render empty text label attached with each point, Athens
> is even happier. Text font rendering through Athens seems to be slow.
>
> Hilaire
>
>
> Le 04/04/2018 �� 23:05, Hilaire a ��crit��:
>> It reduces by 50% the time to execution. Need to check if this trick
>> #1 and #2 are still needed at P7 time.
>
> --
> Dr. Geo
> http://drgeo.eu

My notes after looking at the profile for a short while, if anyone feels the
urge to optimize;
UFFI:

> 8.8% {11475ms}
> CairoFreetypeFontRenderer>>convertString:len:ofFont:toGlyphs:numGlyphs:x:y:
>�� ��| 4.7% {6098ms} ExternalAddress>>packToArity:
>�� ��| 4.5% {5789ms} ExternalAddress>>pointerAutoRelease
>�� ��| 2.6% {3439ms} ExternalAddress>>unpackFromArity:

The lifespan of arguments that need arity packing/unpacking is well known,
rewriting to use explicit free should lessen the overhead somewhat.

CAIRO:

> 26.6% {34593ms} CairoFreetypeFontRenderer>>glyphsOf:from:to:
>�� �� | 12.2% {15842ms} CairoGlyphsArray class>>new:

With this kind of overhead just to create the array to hold results, it
might be worthwhile to use a buffer array (of sufficient size) for the
primitive, and copyFrom:to: to return the actual glyphs...

DRGEO:

> 20.9% {27116ms} DrGPointMorph>>drawOnAthensCanvas:
>�� �� |16.7% {21720ms} AthensCairoCanvas(AthensCanvas)>>createPath:

Storing the path in DrGPointMorph, rather than recreating for each draw:,
should save alot of time.


> 7.7% {9962ms} DrGTextMorph>>drawOnAthensCanvas:
>�� ��| 7.7% {9962ms} Form>>asAthensPaintOn:

Same thing here, only storing the paint, rather than converting from form
each draw.
This would also be beneficial to Roassal when zooming in and out of vusualization with a ton of labels.

Phil