Looking at the profile, Athens spend time on some of my widgets:
1. LabelMorph with a workaround in the draw method as:
drawOnAthensCanvas: aCanvas
"Work around for the conflicting size font problem"
aCanvas pathTransform restoreAfter: [
aCanvas pathTransform scaleBy: 1.00001.
"draw text here"
super drawOnAthensCanvas: aCanvas].
Do we still need to do that, may be not.
2. TextMorph with another workaround:
drawOnAthensCanvas: aCanvas
| cached |
myForm ifNil: [myForm := self imageForm].
cached := aCanvas cacheAt: myForm ifAbsentPut: [
myForm asAthensPaintOn: aCanvas. ].
aCanvas setPaint: cached.
aCanvas paintTransform restoreAfter: [
aCanvas paintTransform translateBy: self fullBounds origin
truncated.
aCanvas drawShape: self fullBounds].
It should be faster but it is slower.
3. PointMorph, painting as round shape is slow, painting point as square
is way faster.
It reduces by 50% the time to execution. Need to check if this trick #1
and #2 are still needed at P7 time.
Hilaire
Le 04/04/2018 à 22:31, Hilaire a écrit :
From the profile, there are a lot of activities with Athens. I can't
say if it is normal... Someone with good knowledge could dig on it. I
can provide the environment to test.
--
Dr. Geo
http://drgeo.eu