[Twisted-Python] Re: GUI responsiveness
Jasper
jasper at peak.org
Fri Sep 16 07:37:27 MDT 2005
Antoine Pitrou wrote:
>>class PyuiClient( NetworkClient ):
>> def __init__( self ):
>> # ...
>> self._pyuiRefresh( .001 )
>>
>> def _pyuiRefresh( self, delay ):
>> pyui.draw()
>> pyui.update()
>> reactor.callLater( delay, self._pyuiRefresh, delay )
>>
>>
>
>This looks like a busy wait loop. It will eat a good chunk of the CPU
>time (depending on the time taken by each "_pyuiRefresh" iteration) and
>your laptop users (if there any) may not be very happy... It may slow
>down other apps tooo.
>
>
It's not a busy wait loop, whenever it's not doing anything control is
relinquished to twisted. The .001 second delay /is/ really short, and I
had originally expected something closer to the screen refresh rate like
.01, but after testing I found that .001 performed better. To be honest
I don't fully understand why this is the case, as it seems like this
would be wastefull, but it works fast enough I can't really justify the
time it would take to profile it and figure out exactly what's going on.
Anyway, I get 60 FPS, idling CPU use is 5%, and I develop on an older
laptop. Since this is a game I don't much care if it slows down other
apps, which it does a little. I have no doubt that it could be more
efficient, but considering I don't have any speed problems I'm perfectly
happy trading this off for
code simplicity.
-Jasper
More information about the Twisted-Python
mailing list