Is I/O Completion ports(Windows) or Asynchronous I/O (AIO) will improve performance of multithreaded servers handling large volume of requests?

StackOverflow https://stackoverflow.com/questions/2490473

문제

I want to use I/O Completion ports for Windows and Asynchronous I/O (AIO) for solaris and Linux versions of my server application. The application server is multithreaded and it can accept lot of concurrent TCP connections and can process many requests per conenction. Is this criteria well enough to use the latest AIO?. Is there any standardization using which one code can be used to all platforms.

Thanks, Naga

도움이 되었습니까?

해결책

Every request will be handled by seperate detached thread.

That's not how I/O Completion Ports work on Windows... They allow you to use a very small number of threads to process vast amounts of I/O.

For example, here: http://www.lenholgate.com/blog/2005/10/the-64000-connection-question.html I talk about handling 64,000 concurrent active TCP connections with around 4 threads...

For Linux I expect the route to take is to use libevent.

For cross platform someone is sure to suggest ASIO.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top