From: Michael P. <mp...@uw...> - 2006-03-30 19:05:25
|
Geoffrey Talvola wrote: > John Dickinson wrote: > >>Not only that, it consumes a webware thread that could be used for >>other requests. > > > Yes, this won't scale too well if you have large numbers of concurrent > users. You could probably handle hundreds of users with a large thread pool > though. According to some measurements I made, a pool with more than 10-20 threads will seriously affect overall performance. > > Nevow/Twisted solves this problem by using async event-driven methods > instead of threads. I think Twisted's architecture is a better fit for this > type of application than Webware's thread pool. I wonder if there is some > way to combine the two -- use standard Webware threads for "normal" > short-lived requests but have some way to handle the ajax_response-type > requests without tying up threads. It would probably require reworking the > ThreadedAppServer architecture significantly. > Should work in principle. One problem is the lack of thread priorities in Python. If you dedicate one thread to the asynchronous requests, that thread will compete for CPU time against all others in the pool and may be quite slow. It might be necessary to use several threads to get more overall CPU time for the async requests. Michael |