[Twisted-Python] GUI responsiveness

Antoine Pitrou solipsis at pitrou.net
Wed Sep 14 08:18:26 EDT 2005


> Not at all.  A user clicks on a button; if they don't see an update
> for 100ms, that is barely enough time for them to flick their mouse
> over to another button.  In fact, network latency is such that it is
> nearly impossible to provide faster than 100ms actual real response
> time even for highly performance-critical applications.

Of course, but in a non-trivial GUI+network application, lots of GUI
actions do not imply networking.
For example in Firefox, the bookmarks editor is independent from
networking stuff, and I doubt it is unresponsive when the app is busy
parsing some HTML (I must admit I haven't checked, though).

> A news aggregator I use, straw, does blocking DNS lookups and can hang
> completely for upwards of a minute while it's doing an update.  While
> this is not exactly ideal behavior, it's tolerable.

That tolerance certainly depends on the user ;)
People who aren't aware of network issues will just think "wow, it's
crashed" and kill the window in a way or another.

> 6 - in Python, your threaded work has to release the GIL to give any
> substantive improvement in performance, which it probably doesn't.

My argument was only about responsiveness (latency), not performance
(bandwidth). Also, I advocate the use of two threads, not a thousand ;))

(er... I will try to find the time to look at Q2Q, by the way)



More information about the Twisted-Python mailing list