Proposal for Morphic performance-measurement enhancement (was: Re: Browser on slower machines)

Daniel Vainsencher danielv at netvision.net.il
Sun Jul 27 10:20:32 UTC 2003


One problem I've had with measuring and therefore improving Morphic
response times is that it is difficult to measure. Why? using the
start/browse MessageTally is imprecise and inconvinient. The fact that
it relies on the user to start it, evoke an operation, and end it, means
that 
A. It is clumsy, because it takes too much work.
B. It's resolution stinks.

Let me elaborate on B. If you're try to measure something on the order
of ten seconds, the 1 second it takes to initiate the action, and
another 1 second it takes to terminate the tally are reasonable. But UI
response are sometimes (depending on the precise action) very
unacceptable even in the .5 second range. When measuring something like
that, most of your MessageTally sample will be of yourself setting up
the measurement.

When timing non-UI stuff, we usually get to do two things differently.
1. Measurement is done only on the code we choose to profile.
2. If the code is too quick for the 16msec sampling, we simply repeat it
until it is long enough to measure precisely.

So what's the proposal? for someone with a bit of Morphic internals
knowledge -
1. Create a menu item "start MessageTally on click". The measurement
should handle just one event execution, and nothing more, so that
measurement is correctly delimited (this is I don't know how to do
myself).
2. Have another menu item that says "start event record for message
tally". This allows the user to perform a series of events that are
idempotent. For example, in a browser open on method #a, the users
chooses method #b, then choose method #a again. Then the user clicks on
"end record and MessageTally for N seconds". At which point Morphic
somehow repeats exactly the events the user performed, for enough time
that the performance differences are actually noticable.

I dont know if the event recorder is up to doing what I describe in 2.
But if we had those two enhancements, it would be much easier to profile
Morphic stuff precisely, therefore to improve it.

Daniel

Tim Rowledge <tim at sumeru.stanford.edu> wrote:
> "Eddie Cottongim" <cottonsqueak at earthlink.net> wrote:
> 
> > Hi,
> > 
> > I've been noticing that on my slower machine, the Browser is quite slow.
> Funnily enough I've been trying to get around to a message rather like
> this all week. Now that I have working event input for RiscOS I can't
> make mental excuses for the terrible lack of user feedback in most of
> the morphic programmer tools. Maybe all of you with multi-gigglehurtz
> desktop machines just don't see the effects but I feel sure that they
> should be apparent on pocketpc pdas and so on.
> 
> <rantette>
> For example, select a class with a goodly number of instance and/or
> class vars - such as Interpreter, which you won't be surprised to hear
> I do pretty often. I have to wait quite a while to get the class
> definition - 7 seconds just now. In the meantime there is NO feedback to
> let me know that I actually successfully clicked on Interpreter. This is
> just plain lousy UI coding. The list item ought to be coloured as soon
> as it is known to be selected and the cursor ought to be changed if
> there is any chance of the operation taking a noticable time (typically
> 1/5th second would count as noticable).
> 
> Similarly the buttons used in the browser should provide actually
> noticable visual feedback rather than a somewhat feeble faint
> recolouring.
> 
> And lastly as part of this minor rant, somebody with an affection for
> the profiler, please please spend some time working out how to speed up
> morphic stuff generally. The comparison with the performance of the MVC
> stuff is seriously embarrassing. Even TTF fonts go fast in MVC (excpet
> for the mess that the window backup bits make by losing the antialised
> quality).
> </rantette>
> 
> I'd have ago myself but I'm
> a) trying to get new VM packages out so you can have new VMs
> b) not so very coversant with the inner workings of morphic at the
> moment
> 
> 
> tim
> --
> Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
> Close your eyes and press escape three times.



More information about the Squeak-dev mailing list