Re: IM cервер. Как увеличить кол-во одновременным соединений
От: Аноним  
Дата: 10.02.06 08:10
Оценка:
Здравствуйте, p_s_g, Вы писали:

__>Есть самописный сервер обмена текстовыми сообщениями (типа ICQ, но намного проще). Реализован на сокетах по синхронной схеме с пулом потоков. Написан на C# под .Net Framework 1.1.

__>Интересует следующие вещи (если у кого-то есть подобный практический опыт):
__>Сможет ли сервер, написанный на .Net с такой схемой работы, выдержать 5000-10000 одновременных соединений (конечно, при условии, что он написан "прямыми" руками)?
__>Какая схема позволяет получить наиболее производительное решение (синхронная с пулом потоков, асинхронная или ваш вариант — в тех статьях, которые мне попались, мнения расходятся)?
__>Даст ли переход от .Net к, например, C++ выигрыш по производительности (сервер должен крутиться под Windows)?
__>В общем, что лучше всего использовать для написания сервера, который сможет нормально работать под Windows при 5000-10000 одновременных соединений?
__>Нужно либо обоснованное мнение, либо отсыл к грамотным статьям на эту тему.

1) Самая производительная и легко масштабируемая архитектура сервера для Windows это использование IO Completion Port. Твои 5-10К клиентов — легко и непринужденно. Аргументы см. в МСДН где рассказывается про это самое — различные типы серверов и их преимущества/недостатки.
2) C++ однозначно лучше .Net по производительности и гибкости написания, хотя, тут уже вопрос вкусов, стандартизации платформы и много других факторов. Чисто формально — "точка" толще чем чистый код, потому и медленнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.