On 9 January 2014 10:26, J.F. Rick <s...@je77.com> wrote: > OK. I've made a little headway in diagnosing the problem. It seems that > one culprit is that the "self changed" thing works differently with Athens > than previously. Correct me if I'm wrong, but it seems like sending that > method immediately causes the canvas to draw. In contrast, before, it just > marked that area as needing to be redrawn and then, on an update cycle, it > would redraw the total area that changed. I was using a model-view pattern > that had 25 components to it. When each got the update command, it seems to > have launched the canvas to draw. When I changed it so that only one > changed command was given, the interface became immediately much snappier. > Adding a factor of 25 to rendering could cause even fast rendering to be > quite noticeable. So, it is not an inherent problem with drawing forms but > rather one with changing the programming paradigm. Forms are just > noticeably slower to draw than vector components and that exacerbated my > problem. > > Hmm.. Can you explain me, how Athens is related to that? :)
'self changed' logic and its handling is related to Morphic and used by it. there's no way how you can change it by changing something in Athens. > Cheers, > > Jeff > > > On Thu, Jan 9, 2014 at 8:18 AM, J.F. Rick <s...@je77.com> wrote: > >> Hmm. Weird. Could it be a linux thing? Bit order or something? Could it >> be a transparency issue? Could it be a size of the form? I have forms of >> size around 200 x 200. At this point, I haven't numerically investigated >> it. I just notice a significant difference in rendering speed as I switch >> from forms to SVGs. Perhaps it is having to redraw the entire interface >> very often. I'll investigate a bit more when I have some time. >> >> Cheers, >> >> Jeff >> >> >> On Thu, Jan 9, 2014 at 2:08 AM, Igor Stasenko <siguc...@gmail.com> wrote: >> >>> >>> >>> >>> On 8 January 2014 08:59, J.F. Rick <s...@je77.com> wrote: >>> >>>> In good news, I was able to implement the S/s functionality and both of >>>> my SVGs now load properly. I'll try some more soon and commit the changes >>>> once I have tested it a bit more. >>>> >>>> In bad news, the cacheing was working properly, so I still suspect that >>>> rendering forms as a paint is too intensive to be practical for many >>>> applications. I'll try to evaluate it a bit more as I replace forms with >>>> SVGs. If the forms are causing the problem, then performance should >>>> noticeably increase. >>>> >>>> >>> I just did a little comparison: >>> >>> | surface time | >>> surface := AthensCairoSurface extent: 200@200. >>> >>> surface drawDuring: [ :canvas| >>> canvas setPaint: Color red. >>> canvas setShape: (0@0 extent: 100@100). >>> time := [ 10000 timesRepeat: [ canvas draw ] ] timeToRun. >>> ]. >>> time >>> 0:00:00:00.115 >>> ============= >>> >>> same as above but with: >>> canvas setPaint: (ThemeIcons current backIcon). >>> >>> time >>> 0:00:00:00.093 >>> =========== >>> >>> same as above but with: >>> (canvas setPaint: (ThemeIcons current backIcon)) repeat. >>> >>> time >>> 0:00:00:00.956 >>> >>> as you can see, even in slowest case, the throughput is: >>> >>> 100*100*10000 = 100'000'000 pixels (texels) per second. >>> >>> >>> >>>> Cheers, >>>> >>>> Jeff >>>> >>>> >>> -- >>> Best regards, >>> Igor Stasenko. >>> >> >> >> >> -- >> Jochen "Jeff" Rick, Ph.D. >> http://www.je77.com/ >> Skype ID: jochenrick >> > > > > -- > Jochen "Jeff" Rick, Ph.D. > http://www.je77.com/ > Skype ID: jochenrick > -- Best regards, Igor Stasenko.