Deferred updates/slow redraw on OS X

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Deferred updates/slow redraw on OS X

Avi  Bryant
I've complained occasionally about the state my images can get into  
where there are frequent excruciating waits while each SystemWindow  
redraws itself many times slower than normal - these are often  
triggered by debuggers popping up but I also have images where just  
opening a new browser window can sometimes set it off.  (See http://
macos.tuwien.ac.at:9009/482103917.asHtml for one discussion about the  
problem).  I can now characterize it a little better, I think: what's  
happening is that the deferred updates flag is getting set to false,  
and yet the WorldState still has a canvas directly on the Display  
form.  If I disable deferred updating, and nil out the canvas on  
WorldState, then I'm pretty sure the problem goes away (and I don't  
notice any particular change in UI responsiveness, though I realize  
there must be some extra copying going on).

Does this ring any bells for anyone?

Avi

Reply | Threaded
Open this post in threaded view
|

Re: Deferred updates/slow redraw on OS X

Andreas.Raab
 > Does this ring any bells for anyone?

There is a possibility that this is caused by a debugger popping up via
a non-ui process. When this happens (which just so happened quite a
number of times to me) you see all sorts of weirdo effects - starting
from the debug button being in the wrong place, over redrawing stuff
extremely slowly, up to bogus recursive errors. The cause? Interference
of the debug process with the main Morphic UI process. The code in
Debugger>>openOn:context:label:contents:fullView: is questionable - it
forks off the debugger in a separate process but that process is not
synchronized with Morphic. What that code probably *should* say is
"WorldState addDeferredUIMessage:[...]" or somesuch. You might want to
try this and see if it addresses your problem. I wouldn't be surprised
if it did.

Cheers,
   - Andreas

Avi Bryant wrote:

> I've complained occasionally about the state my images can get into  
> where there are frequent excruciating waits while each SystemWindow  
> redraws itself many times slower than normal - these are often  
> triggered by debuggers popping up but I also have images where just  
> opening a new browser window can sometimes set it off.  (See http://
> macos.tuwien.ac.at:9009/482103917.asHtml for one discussion about the  
> problem).  I can now characterize it a little better, I think: what's  
> happening is that the deferred updates flag is getting set to false,  
> and yet the WorldState still has a canvas directly on the Display  
> form.  If I disable deferred updating, and nil out the canvas on  
> WorldState, then I'm pretty sure the problem goes away (and I don't  
> notice any particular change in UI responsiveness, though I realize  
> there must be some extra copying going on).
>
> Does this ring any bells for anyone?
>
> Avi
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Deferred updates/slow redraw on OS X

David T. Lewis
Also note recent changes to Debugger>>openOn:context:label:contents:fullView:
since August 2005. One attempt to fix this also broke MVC, see
Mantis #2359 "Debugger in MVC opens in next available Morphic world".

Dave

On Tue, Jan 17, 2006 at 01:32:06AM -0800, Andreas Raab wrote:

>  > Does this ring any bells for anyone?
>
> There is a possibility that this is caused by a debugger popping up via
> a non-ui process. When this happens (which just so happened quite a
> number of times to me) you see all sorts of weirdo effects - starting
> from the debug button being in the wrong place, over redrawing stuff
> extremely slowly, up to bogus recursive errors. The cause? Interference
> of the debug process with the main Morphic UI process. The code in
> Debugger>>openOn:context:label:contents:fullView: is questionable - it
> forks off the debugger in a separate process but that process is not
> synchronized with Morphic. What that code probably *should* say is
> "WorldState addDeferredUIMessage:[...]" or somesuch. You might want to
> try this and see if it addresses your problem. I wouldn't be surprised
> if it did.
>
> Avi Bryant wrote:
> > I've complained occasionally about the state my images can get into  
> > where there are frequent excruciating waits while each SystemWindow  
> > redraws itself many times slower than normal - these are often  
> > triggered by debuggers popping up but I also have images where just  
> > opening a new browser window can sometimes set it off.  (See http://
> > macos.tuwien.ac.at:9009/482103917.asHtml for one discussion about the  
> > problem).  I can now characterize it a little better, I think: what's  
> > happening is that the deferred updates flag is getting set to false,  
> > and yet the WorldState still has a canvas directly on the Display  
> > form.  If I disable deferred updating, and nil out the canvas on  
> > WorldState, then I'm pretty sure the problem goes away (and I don't  
> > notice any particular change in UI responsiveness, though I realize  
> > there must be some extra copying going on).
> >
> > Does this ring any bells for anyone?
> >

Reply | Threaded
Open this post in threaded view
|

Re: Deferred updates/slow redraw on OS X

karl-8
In reply to this post by Andreas.Raab
Andreas Raab skrev:

> > Does this ring any bells for anyone?
>
> There is a possibility that this is caused by a debugger popping up
> via a non-ui process. When this happens (which just so happened quite
> a number of times to me) you see all sorts of weirdo effects -
> starting from the debug button being in the wrong place, over
> redrawing stuff extremely slowly, up to bogus recursive errors. The
> cause? Interference of the debug process with the main Morphic UI
> process. The code in Debugger>>openOn:context:label:contents:fullView:
> is questionable - it forks off the debugger in a separate process but
> that process is not synchronized with Morphic. What that code probably
> *should* say is "WorldState addDeferredUIMessage:[...]" or somesuch.
> You might want to try this and see if it addresses your problem. I
> wouldn't be surprised if it did.
>
> Cheers,
>   - Andreas
This is fixed in 3.9alpha. A similar fix should probably go into 3.8.
Karl

>
> Avi Bryant wrote:
>> I've complained occasionally about the state my images can get into  
>> where there are frequent excruciating waits while each SystemWindow  
>> redraws itself many times slower than normal - these are often  
>> triggered by debuggers popping up but I also have images where just  
>> opening a new browser window can sometimes set it off.  (See http://
>> macos.tuwien.ac.at:9009/482103917.asHtml for one discussion about
>> the  problem).  I can now characterize it a little better, I think:
>> what's  happening is that the deferred updates flag is getting set to
>> false,  and yet the WorldState still has a canvas directly on the
>> Display  form.  If I disable deferred updating, and nil out the
>> canvas on  WorldState, then I'm pretty sure the problem goes away
>> (and I don't  notice any particular change in UI responsiveness,
>> though I realize  there must be some extra copying going on).
>>
>> Does this ring any bells for anyone?
>>
>> Avi
>>
>>
>
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Deferred updates/slow redraw on OS X

David T. Lewis
On Tue, Jan 17, 2006 at 02:52:12PM +0100, karl wrote:

> >
> > There is a possibility that this is caused by a debugger popping up
> > via a non-ui process. When this happens (which just so happened quite
> > a number of times to me) you see all sorts of weirdo effects -
> > starting from the debug button being in the wrong place, over
> > redrawing stuff extremely slowly, up to bogus recursive errors. The
> > cause? Interference of the debug process with the main Morphic UI
> > process. The code in Debugger>>openOn:context:label:contents:fullView:
> > is questionable - it forks off the debugger in a separate process but
> > that process is not synchronized with Morphic. What that code probably
> > *should* say is "WorldState addDeferredUIMessage:[...]" or somesuch.
> > You might want to try this and see if it addresses your problem. I
> > wouldn't be surprised if it did.
> >
> > Cheers,
> >   - Andreas
> This is fixed in 3.9alpha. A similar fix should probably go into 3.8.
> Karl

But the fix breaks MVC, so should not go into 3.8 (Mantis 2359).

Dave


Reply | Threaded
Open this post in threaded view
|

Fwd: Deferred updates/slow redraw on OS X

Marcus Denker


Begin forwarded message:

>
>> This is fixed in 3.9alpha. A similar fix should probably go into 3.8.
>> Karl
>
> But the fix breaks MVC, so should not go into 3.8 (Mantis 2359).
>

I tried to fix it at some point... but I don't think this was very  
successfull.
I think it's now less often that the bug is happending.

I will fix the MVC problem in 3.9a with the next update.

      Marcus