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

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

Вопрос

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

Спасибо, Нага

Это было полезно?

Решение

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

Порты завершения ввода-вывода в Windows работают по-другому...Они позволяют вам использовать очень небольшое количество потоков для обработки огромных объемов операций ввода-вывода.

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

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

Для кроссплатформенности кто-нибудь обязательно предложит ASIO ( АЗИО ).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top