2009/2/8 Stéphane Ducasse <stephane.duca...@inria.fr>: > Igor could you give us the snippets for the benchmarks. > I would like to use them as example for a forthcoming chapter on > profiling. >
What exactly snippets you want? I'm using most simple ways to measure performance, including: [ .... ] timeToRun. or MessageTally spyOn: [...] i made a simple class GlobalCounter to use a GlobalCounter increment: 'some id' in methods i'm interested in and then run some code like following: GlobalCounter reset. mycode run. GlobalCounter counters copy "inspect" GlobalCounter implementation is trivial, i don't think it requires any explanation how it works :) > 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 > -- Best regards, Igor Stasenko AKA sig.
GlobalCounter.st
Description: Binary data
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project