Hello Richard, Armin et al:

--- On Sun, 10/4/09, Richard Tew <[email protected]> wrote:

> In any case, select would not be the right place.  It
> is where someone goes to work with asynchronous IO.  I would rather
> suggest that the uber-module would be the socket module, and that 
> behind the scenes it might use IO completion ports on Windows and 
> poll or something similar on other platforms.  But the goal in doing 
> it, would be to make IO just work with a microthread scheduling 
> framework for the user with minimal difficulty or effort.  
> In order for this to be so, how it works with the scheduler 
>would have to be equally simple for the user.

Yes using IO completion ports or epoll, if done right, is a quick way to
give better performance. However I think the interesting area is analysing how 
the scheduler interacts with the reactor (assuming we are using a reactor). 

I think a strategy will start with looking at stuff like many requests 
come in and how fast they can be processed (trying to determine what is a 
steady state). I will also assume that a good solution, given the 
aforementioned, is trying minimize stuff like context switches (even though 
they are fast) and calls to the OS (where one takes a hit). Then there is the 
issue of how much overhead is incurred from laying, that is locating 
"networking smarts" in a tasklet, as opposed to the interpreter.

Again, as I stated in a previous post, I don't have a good conceptual 
framework. I have read some papers on high performance server design. Would 
have to read more. I also suspect a lot of experimentation would have to be 
done to see what works.

Cheers,
Andrew



      
_______________________________________________
[email protected]
http://codespeak.net/mailman/listinfo/pypy-dev

Reply via email to