Сервер - Синхронное мультиплексирование ввода / вывода (сокеты) - PullRequest
2 голосов
/ 12 февраля 2012

Я реализовал чат-сервер в C / Linux, который использует TCP-сокеты.В настоящее время он использует один процесс и использует select () для предотвращения блокировки сервера.Я читал, что метод select () довольно медленный, и я пытаюсь обновить сервер до более эффективной версии.

В настоящее время я смотрю на libevent, но я надеялся, что кто-то сРазработка быстрого серверного кода может дать мне несколько советов о том, какие из самых быстрых технологий доступны.Является ли libevent надежным выбором или есть что-то лучшее, на что мне стоит обратить внимание?

Я очень ценю любую помощь!

1 Ответ

1 голос
/ 12 февраля 2012

Для Linux (только) вы можете использовать epoll, который быстрее в большинстве случаев (но не во всех).

Основным недостатком epoll является то, что он поддерживается только в ОС Linux (не переносимо).

В сводной заметке epoll может отслеживать очень большое количество дескрипторов и будет возвращать список только тех, которые изменились (не нужно пропускать весь исходный список дескрипторов).

...