|
|
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Вопрос собственно тот же, сколько можно обрабатывать select дескрипторов сокетов? Поделитесь опытом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 11:34 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Зависит от ОС и реализации. Допустим в ASP 10 = 1024/6. Смотрите заголовочные файлы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 11:45 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
у мну Win. Т.е. если надо обрабатывать более чем, то надо юзать poll? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:11 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Видать да. В селекте fd_set линуха имеет буфер фиксированной длины. С ним работают макросы. Так что, совсем не обязательно, что в вин эти макросы не могут работать с динамическим буфером. Но как правило, структура реализаций редко различается. В поол же передается массив структур, который ограничивается размером параметра количества структур. Для линухов это 6 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:19 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Т.е. если хочу в одном цикле бегать по 5000 сокетов например , надо юзать poll однозначно? Я тесчу на select 2048 допустим, и он справляеться вроде, а вот больше, толи подтормаживать начинает, толи реализация моя подтупливает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:23 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Да, кстати, правильно ли я понимаю.. Что select, пока не отработает все сокеты, не вернет управление в основной поток? Не зависимо от того какой там стоит тайм аут, т.е. по тайм ауту, он дает очухаться сокетам, после его наступления он их оббегает, а как оббежит вернет управление? да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:30 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFТ.е. если хочу в одном цикле бегать по 5000 сокетов например , надо юзать poll однозначно? Я тесчу на select 2048 допустим, и он справляеться вроде, а вот больше, толи подтормаживать начинает, толи реализация моя подтупливает... Можно не по всем сразу селект ставить, а по очереди, сокетов так по 128. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:39 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
А если каждый сокет проверять selectом с тайм аутом в 0.. ? В теории должно работать в разы быстрее.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:42 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFДа, кстати, правильно ли я понимаю.. Что select, пока не отработает все сокеты, не вернет управление в основной поток? Не зависимо от того какой там стоит тайм аут, т.е. по тайм ауту, он дает очухаться сокетам, после его наступления он их оббегает, а как оббежит вернет управление? да? Точно, реализации не знаю. Попробуйте поискать линуховую справку select_tut. Там много чего написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:46 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFА если каждый сокет проверять selectом с тайм аутом в 0.. ? В теории должно работать в разы быстрее.. Много вызовов select. Тоже расходуются ресурсы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:47 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Вот, например. Для винды, должно быть что-то подобное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:48 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Угу, выход один, дробить общее множество сокетов на более мелкие, и обрабатывать select каждое из них.. Попробую скоро, результат сообщу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 12:57 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFУгу, выход один, дробить общее множество сокетов на более мелкие, и обрабатывать select каждое из них.. Попробую скоро, результат сообщу. Ну, а почему же вы сразу отвергаете poll? Для каждого сокета у него есть маска запрашиваемых событий. Плюс в использовании poll - первый готов - первый и получил. Я про него ничего не говорил, т.к. не было необходимости с ним работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:01 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFДа, кстати, правильно ли я понимаю.. Что select, пока не отработает все сокеты, не вернет управление в основной поток? Не зависимо от того какой там стоит тайм аут, т.е. по тайм ауту, он дает очухаться сокетам, после его наступления он их оббегает, а как оббежит вернет управление? да? не правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:01 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Так стоит ли морочиться poll? Есть в интернете источники которые утверждают что он являеться приемлимым при большом количестве соединений. Но обычно люди советую пользоваться select ом.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:04 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) DжеFFДа, кстати, правильно ли я понимаю.. Что select, пока не отработает все сокеты, не вернет управление в основной поток? Не зависимо от того какой там стоит тайм аут, т.е. по тайм ауту, он дает очухаться сокетам, после его наступления он их оббегает, а как оббежит вернет управление? да? не правильно Ну а как если своими словами? Правильно?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:05 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFТак стоит ли морочиться poll? Есть в интернете источники которые утверждают что он являеться приемлимым при большом количестве соединений. Но обычно люди советую пользоваться select ом.. Обычно люди с таким количеством сокетов не работают. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:05 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Пошел искать документацию на poll.. =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:43 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
AkhОбычно люди с таким количеством сокетов не работают. :) Работают. В очень специфических случаях. авторНу а как если своими словами? Правильно?! Когда произойдет изменение состояние любого из упомянутых сокетов ИЛИ завершится время по таймеру, select вернет количество сокетов в которых изменилось состояние. Есть man/MSDN зачем что-то ДОМЫСЛИВАТЬ ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:44 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
А на деле получаеться что select может вернуть управление позже, сами попробуйте.. =) Да, используют люди, случаев специфических навалом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:52 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
А poll воообще под Винды работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:54 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFА poll воообще под Винды работает? Если есть, значит работает. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:57 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Akh Обычно люди с таким количеством сокетов не работают. :) Работают. В очень специфических случаях. ОБЫЧНО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:58 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
=) Хм.. Нету Poll под винды.. =) Если только самореализованный... Значит пора смотреть в сторону IOCP.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 14:04 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFА на деле получаеться что select может вернуть управление позже, сами попробуйте.. =) Да, используют люди, случаев специфических навалом. Может, я бы даже сказал не может не вернуть позже. Как и Sleep ;) На UNIX-е несколько точнее чем на Win. Ужо напробувался. На счет ИЗМЕНЕНИЯ состояния я тоже был неточен. Документация ЧЕТКО оговаривает в каких случаях срабатывает select, грубо говоря при проверке доступности по чтению когда есть/появились данные для чтения или зафиксирован разрыв соединения. Самопальная реализация логики select (как вы ее описали) скушает все что можно на переключениях контекста при путешествиях в режим ядра и обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 14:14 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Хорошо.. А если например масштабировать приложение, так что select у меня будет прослышать например максимум 1024 порта, и выполнять эту самую прослушку в несколько итераций, постоянно обновляя дескрипторы в fd_set. Реально как думаете? И как оптимальный выбрать для этого таум аут? Ну т.е. какой тайм аут выбрать для select(1024,..)? Что бы общее время обработки select не была слишком велика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:14 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFИ как оптимальный выбрать для этого таум аут? По моему вы неправильно понимаете значение этого параметра. Не вижу никакой связи между продолжительностью таймаута и количеством проверяемых сокетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:27 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFХорошо.. А если например масштабировать приложение, так что select у меня будет прослышать например максимум 1024 порта, и выполнять эту самую прослушку в несколько итераций, постоянно обновляя дескрипторы в fd_set. Реально как думаете? И как оптимальный выбрать для этого таум аут? Ну т.е. какой тайм аут выбрать для select(1024,..)? Что бы общее время обработки select не была слишком велика? 1. Да. 2. Исходя из времени обработки полного цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:37 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) DжеFFИ как оптимальный выбрать для этого таум аут? По моему вы неправильно понимаете значение этого параметра. Не вижу никакой связи между продолжительностью таймаута и количеством проверяемых сокетов. Почему же нет? Помоему как раз прямая? Нет? Чем больше сокетов в наборе, тем больше времени надо select что бы по ним пробежаться.. Нет? Я так понимаю, что если select железно отдает управление по таум ауту, и за 100 млсек не успевает обойти все, то в нужных наборах не просмотренные сокеты не появяться.. нет? А какой тогда вообще смысл этого параметра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:39 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFF Gluk (Kazan) DжеFFИ как оптимальный выбрать для этого таум аут? По моему вы неправильно понимаете значение этого параметра. Не вижу никакой связи между продолжительностью таймаута и количеством проверяемых сокетов. Почему же нет? Помоему как раз прямая? Нет? Чем больше сокетов в наборе, тем больше времени надо select что бы по ним пробежаться.. Нет? Я так понимаю, что если select железно отдает управление по таум ауту, и за 100 млсек не успевает обойти все, то в нужных наборах не просмотренные сокеты не появяться.. нет? А какой тогда вообще смысл этого параметра? Кроме "обхода" он еще падает в idle и ждет изменения состояния на сокете. В этом и заключается таймаут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:41 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Почитайте ссылку которую я вам дал. Можете еще поискать в инете man select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:43 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
DжеFFПочему же нет? Помоему как раз прямая? Нет? Почитайте же наконец документацию. Там вообще может быть 0 таймаут. И все будет прекрасно работать (независимо от количества сокетов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:19 |
|
||
|
Какое макс. количество сокетов можно повесить на select!!!
|
|||
|---|---|---|---|
|
#18+
Все понятно. Может быть Ноль, знаю. Просто тайм ауту приписывал более веское значение. Спасибо за участие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:21 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2030090]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 534ms |

| 0 / 0 |
