[Q] Speed comparison 2.8 vs 3.8

frits swinkels frits.swinkels at shaw.ca
Fri Aug 26 17:01:25 UTC 2005


There is not only a speed difference between 2.8 and 3.8; there is a 
notable difference between 3.6 and 3.7. With a profiler on it, one makes 
some observations (remember we are here in the basement of Morphic and 
the code gets run a lot):
- a. recently some "aColl size = o" were replaced by "aColl isEmpty" : 
afaik the former is inlined and the latter is a message send. In some 
places this matters and I reverted them in my image.
- b. similarly "aColl at:1' replaced by " aColl first"
- c. The method pane in the browser was changed from a 
PluggableListMorph with StringMorphs to a PLM with a lazy list 
implementation. Splendid! However the advantage seems to be offset by 
the switch to the two-way scrollpane as the default which emphasizes the 
problem d.. The scrollers are calculated twice, once at initialization, 
once when the real morphs are known.
- d. the liberal use of "extent:" triggers a layout every time (not a 
new problem).

It is said on the subject of code: "make it run, make it run correctly, 
make it fast", not "make it pretty"; making the code more readable at 
the expense of speed is not progress. The point is that changes to low 
level code should always be profiled?

Can we discuss this on the technical merits. An argument that everybody 
owns or should own a 2.4 GHz super something-or-other and that memory is 
cheap, is not to the point. On a recent trip in a rather poor part of 
the world in a small school I found Squeak running on an older machine ( 
a linux box with Squeak on a distro), because "Squeak delivers so much", 
a reputation we want keep.

tim Rowledge wrote:
> 
> On 25-Aug-05, at 6:26 PM, Günther Schmidt wrote:
> 
>> Tim,
>>
>> so, if the *right* people are working on it, Morphic can be made to go 
>> wooooosh?
> 
> 
> Honestly, I don't know how much could be done; messing with morphic has 
> not been my thing. I do strongly suspect that someone that knows plenty 
> about morphic lower levels would be able to make a lot of cleanups. In 
> my experience cleanups can make for very good performance improvements, 
> so I'm hopeful. However I have to say that a lot of code in the image 
> has become so staggeringly baroque, convoluted and mangulated that I 
> have trouble imagining cleanups without massive work. Does anyone have 
> the experience, interest and time to do it?
> 
> tim



More information about the Squeak-dev mailing list