MacOSX Performance

John M McIntosh johnmci at smalltalkconsulting.com
Sat Jan 22 00:07:19 UTC 2005


On Jan 21, 2005, at 2:25 PM, Tim Rowledge wrote:

> Karsten Wolf <karstenwo at web.de> wrote:
>
>>
>> Am 21.01.2005 um 14:34 schrieb Stéphane Conversy:
>>
>>> I guess the problem comes from the display engine.
>>>
>>
>> Guessed right. Or more precisely It has to do with the fact that the  
>> vm
>> calls for a display update for every bitblt. Since these update calls
>> are interprocess calls on OSX (VM to WindowServer) they become very
>> expensive in terms of time if the vm does that for every pixel.
>
>> You're seeing the slowness especially when drawing lines. In that case
>> the display update is called for every pixel which brings the
>
> Wrong. Take a look at that code again.
> BitBltSimulation>primitiveDrawLoop.  & >showDisplayBits. Note the
> interpreter's use of deferDisplayBits. Note also that Morphic
> frequently displays to a backing Form and then does a screen update in
> a big chunk.
>
> Display update performance might well be a performance bottleneck, but
> not for your stated reasons.

Tim, actually Karsten a year or two back  looked seriously at how  
drawing is done and tried to
buffer screen updates in the macintosh os-x VM by reducing the number  
of calls to the flush api which is expensive.
He had sent me some suggestions but they had  side effects in animation  
effects so I never pushed them into the update stream.

I had a number of years back looked at this (might be different today)
http://www.smalltalkconsulting.com/papers/tipsAndThoughts/ 
codeFragments.html
See "Squeak deferred screen updates." When I was looking at an remote  
xwindow update issue with Squeak.

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list