Igor could you give us the snippets for the benchmarks. I would like to use them as example for a forthcoming chapter on profiling.
Stef On Feb 8, 2009, at 2:55 PM, Igor Stasenko wrote: > I'm also want to play with rounding and compare the efficiency of > drawing an initially rounded shape (by using curves) instead of > hacking , which CornerRounder does. > > I took a single rounded button and measured how fast it get drawn and > what parts of drawing process takes what time: > > 100 times > - fulldraw 80ms > - (1) draw 18ms (simple fill a rectangle) > - (2) fulldraw w/o rounding 51ms (almost same as a fulldraw but w/o > use of CorderRounder) > > so, CornerRounder takes 30ms for itself (from total 80ms). > I think if we initially draw a rounded shape, we could have better > numbers , i hoping that drawing a filled rectangular shape and filled > rounded rectangular shape could have much less difference (much less > than 30ms). > It's a bit expensive to spend 3/8 of total rendering time for such > little fancy thing :) > > 2009/2/8 Igor Stasenko <siguc...@gmail.com>: >> 2009/2/8 Gary Chambers <gazzagu...@btinternet.com>: >>> 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" <siguc...@gmail.com> >>> To: <Pharo-project@lists.gforge.inria.fr> >>> Sent: Saturday, February 07, 2009 7:23 PM >>> Subject: Re: [Pharo-project] Call for UI gripes >>> >>> >>>> 2009/2/7 Ramon Leon <ramon.l...@allresnet.com>: >>>>>> 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 >>>>> Pharo-project@lists.gforge.inria.fr >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- >>>>> project >>>>> >>>> >>>> -- >>>> Best regards, >>>> Igor Stasenko AKA sig. >>>> >>>> _______________________________________________ >>>> Pharo-project mailing list >>>> Pharo-project@lists.gforge.inria.fr >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >>> >>> _______________________________________________ >>> Pharo-project mailing list >>> Pharo-project@lists.gforge.inria.fr >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> > > > > -- > Best regards, > Igor Stasenko AKA sig. > > _______________________________________________ > Pharo-project mailing list > Pharo-project@lists.gforge.inria.fr > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project