Показать сообщение отдельно
Непрочитано 04.06.2016, 21:45   #12
Аватар для n3k0nation
Antihero

По умолчанию Re: Пишу сервер с 0 на c#

Цитата:
Сообщение от krisadr Посмотреть сообщение
Как видел в подписи у одного мембера зоны "то что написано в l2j это порнофильм с дешовыми порно актерами"(смысл такой)
Призыв меня удался

Цитата:
Сообщение от krisadr Посмотреть сообщение
Но сетевой движок в один поток на селекторе и nio... давайте почитаем про проблемму 10к соединений и какие подходы с ним справляются... да и вообще сервер в один поток - это перебор сокетов в цикле что на мой все таки взгляд является не правильным подходом... да такой сервер может выдержать большое кол-во подключений, но время отклика увеличивается причем на много...
Лирика: как раз таки с проблемой 10к справляются с помощью селекторов, только, обычно, нескольких, которые работают параллельно, но уж никак не созданием по треду на каждого клиента. И работает селектор далеко не так, как представлено

В то время, когда это все писалось, еще не было NIO2.0 (async network), был выбор: писать на cpp для каждой платформы свою библиотеку (poll/epoll для линуксов и WSA для вин; про бздю вообще молчу), которую потом еще придется поддерживать, или же писать все на первом NIO.
До выхода J7 (в котором появился NIO2.0), особого смысла от нескольких RW Selector-воркеров не было, т.к. нативный поток полинга оставался одним. С вводом NIO2.0 JVM научилась их масштабировать (даже если не использовать async), поэтому, именно, после релиза J7, имело смысл что-то и как-то делать, но не раньше.

Цитата:
Сообщение от krisadr Посмотреть сообщение
а у фреймворка есть такая мощная вещь как асинхронные операции (оптимизированный пулл потоков) с помощью которого можно справится с 10000 соединениями...
Конечно же, до выхода J7 существовал Netty, Grizzly и другие, но их использование... Хм... Об одном только Netty я могу много рассказать, особенно, про замечательный баг 100% CPU Use, который у них лежит на багтрекере уже лет десять, в состоянии Open.
В общем и грубо говоря: они предназначены для веб-серверов, но уж никак не для гейм лоад сети.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Сказали спасибо: