Startup time, a short review & discussion

Tim Rowledge tim at sumeru.stanford.edu
Fri Aug 1 19:34:37 UTC 2003


I've just done a very simplistic timing exercise on my Acorn machine
covering the startup phase. Using a recent beta image and a VM built a
few minutes ago I get the following trace:-

12:20:40.28 start loading image
12:20:55.36 finish loading image
12:20:55.88 start running image
12:20:56.05 ioSetInputSemaphore
12:20:56.05 initial getEvent
12:20:59.73 initial open window
12:20:59.83ioShowDisplay
12:20:59.84ioForceDisplayUPdate
12:20:59.95ioForceDisplayUPdate
12:21:02.55ioShowDisplay
12:21:02.55ioForceDisplayUPdate
12:21:02.55ioForceDisplayUPdate
12:21:05.36ioShowDisplay
12:21:05.36ioForceDisplayUPdate
12:21:05.46ioForceDisplayUPdate
12:21:05.60ioScreenSize 800 at 600
12:21:05.60 relinq 1000
12:21:05.65ioScreenSize 800 at 600

So roughly speaking it takes 15 seconds to load the image (my disc
interface reads the bits from the disk, transmits them to a satellite
which bounces them off the moon, buries them in peat and recycles them
as firelighters before sticking them on the memory handcart).
It then takes around half a second to do all the oop relocation, prim
pointer flushing etc. before getting to interpret(). Not too bad
for scanning 10mb twice.
A quarter of a second later it gets to call getNextEvent for
the first time and then nearly four seconds later it gets to the first
ioShowDisplay (which is when the RiscOS VM lazily opens the window).
It then taks another five-ish seconds to get to the first ioRelinquish
which is a pretty good mark for the time when it is ready for user
interaction.
So that's Twenty-Five seconds between starting the image and actually
getting to do anything with it! I can't do anything much about the disc
speed except get a faster IDE interface (don't hold your breath) but ten
seconds to get the image in order is pretty bad.


tim
--
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Useful random insult:- His page was intentionally left blank.



More information about the Squeak-dev mailing list