Порты завершения ввода / вывода (Windows) или асинхронный ввод / вывод (AIO) улучшат производительность многопоточных серверов, обрабатывающих большой объем запросов? - PullRequest
2 голосов
/ 22 марта 2010

Я хочу использовать порты завершения ввода-вывода для Windows и асинхронный ввод-вывод (AIO) для версий моего сервера Solaris и Linux. Сервер приложений является многопоточным, он может принимать множество одновременных TCP-соединений и может обрабатывать много запросов на соединение. Достаточно ли хорош этот критерий, чтобы использовать новейшие AIO? Существует ли какая-либо стандартизация, использующая один код для всех платформ.

Спасибо, Naga

1 Ответ

4 голосов
/ 22 марта 2010

Каждый запрос будет обработан отдельная отдельная нить.

Это не то, как порты завершения ввода / вывода работают в Windows ... Они позволяют использовать очень небольшое количество потоков для обработки огромного количества операций ввода / вывода.

Например, здесь: http://www.lenholgate.com/blog/2005/10/the-64000-connection-question.html Я говорю об обработке 64 000 одновременных активных TCP-соединений с примерно 4 потоками ...

Для Linux, я ожидаю, что маршрут будет использовать libevent .

Для кроссплатформенности кто-то обязательно предложит ASIO .

...