2009/2/8 Gary Chambers <[email protected]>: > I'll make the drop shadows themable for system windows. > The default way Morphic does drop shadows is quite inefficient. >
Right, i think it would be wise to provide own implementation of drawDropShadowOn: for SystemWindow, to draw simple rectangle (or group of rectangles to avoid excessive fills) since we know that systemwindow is rectangular beforehead. > Regards, Gary > > ----- Original Message ----- > From: "Igor Stasenko" <[email protected]> > To: <[email protected]> > Sent: Saturday, February 07, 2009 7:23 PM > Subject: Re: [Pharo-project] Call for UI gripes > > >> 2009/2/7 Ramon Leon <[email protected]>: >>>> The biggest concern I have right now is speed. I'm not >>>> saying Pharo is too slow; I'm simply admitting that I do not >>>> know whether it is fast enough for some of the things I want to do. >>> >>> +10 to this. >>> >>> The UI is looking really great lately, but overall the experience is it's >>> just too slow. Cracking open a raw squeak base image reminds me how >>> snappy >>> the UI used to be. Not really complaining, it's totally bearable, but >>> it'd >>> sure be nice if the pretty UI was quick and snappy, and you are asking. >>> >> Sure thing >> MessageTally spyOn:[self fullDrawOn: World assuredCanvas] "where self >> is an OB system window morph" >> >> 16.7% {10ms} BalloonEngine>>copyLoopFaster >> 11.7% {7ms} SimpleBorder>>frameRectangle:on: >> 6.7% {4ms} Array(SequenceableCollection)>>select: >> 5.0% {3ms} ByteString(String)>>= >> 5.0% {3ms} SmallInteger(Number)>>to:by:do: >> 5.0% {3ms} GrafPort(BitBlt)>>primDisplayString:from:to:map:xTable:kern: >> 5.0% {3ms} BorderStyle>>frameRectangle:on: >> 3.3% {2ms} ByteSymbol>>species >> 3.3% {2ms} ByteString class(String class)>>new: >> >> total 61ms. >> >> some hot points crying to be optimized: >> cache the OBMonticelloPackageNode>>classCategories , which get >> rebuilt each time you draw the window. >> this can make following numbers much smaller: >> 5.0% {3ms} ByteString(String)>>= >> 6.7% {4ms} Array(SequenceableCollection)>>select: >> 3.3% {2ms} ByteString class(String class)>>new: >> >> Making SystemWindow>>drawDropShadowOn: to do nothing makes a difference: >> >> [10 timesRepeat: [self fullDrawOn: World assuredCanvas ]] timeToRun >> with shadows: 530 >> without: 473 >> ~ 10% speedup >> >> Changing the theme makes some difference (no shadows/with shadows): >> - Watery 2: 50/60 ms >> - Standard Squeak: 38/43 ms >> - Soft Squeak: 46/55 ms >> - Vistary: 56/62ms >> (keep in mind these numbers are polluted with messageTally) >> >> As to me, the theme variancy is quite acceptable - a most complex >> theme (with transulency) is drawn just 50% slower than most simple >> one. >> >> As for, >> 3.3% {2ms} ByteString class(String class)>>new: >> >> Total count of ByteString>>new: calls during >> GlobalCounter reset. >> self fullDrawOn: World assuredCanvas. >> GlobalCounter counters copy inspect >> >> is 7146, >> which again makes me look suspicious at OB here.. Hey! Are we drawing, >> or processing a text?!?! >> >> >>> Ramon Leon >>> http://onsmalltalk.com >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> [email protected] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
