3.9 browser speed

Andreas Raab andreas.raab at gmx.de
Sat Oct 21 19:41:52 UTC 2006

Hi Guys -

I noticed that briefly yesterday but did some more investigation today 
and it turns out that the tools in 3.9 have become *really* slow. And 
it's not just because of the TTF caching. I turned off TTFs completely 
and noticed that things were still slow and then I devised a little 

   win := Browser openBrowser topView.
   win extent: 600 at 350.
   br := win model.
   br systemCategoryListIndex: 1.
   World doOneCycle.
   Transcript cr; show: [1 to: 10 do:[:i|
	br classListIndex: i.
	World doOneCycle.
   ]] timeToRun.

The interesting thing about this benchmark is that you can run it 
multiple times to "increase the load" by having more browsers on the 
screen. I only noticed this accidentally but it turns out to be the 
relevant part.

In 3.8 the above results in a sequence of
	Run 1: 598 msecs
	Run 2: 630 msecs
	Run 3: 683 msecs
	Run 4: 689 msecs
So there is a little bit of slowdown when you add more browsers which is 
what I would expect (due to rounded corners triggering some extra 
overdraw, the additional structure etc).

In 3.9 however, we get the following:
	Run 1:  883 msecs
	Run 2: 1311 msecs
	Run 3: 1632 msecs
	Run 4: 2006 msecs
After four runs, we need 2.5 times as long as the first run. Something 
is causing a tremendous overhead for any additional browser on the 
screen. This matches my experience though originally I had attributed 
that to the TTF problems but it seems the issue is way deeper than that. 
Any ideas what was changed in 3.9 that could cause that slowdown?

   - Andreas

More information about the Squeak-dev mailing list