Найти - Пользователи
Полная версия: Создание сервера с неограниченым числом подключений
Начало » Network » Создание сервера с неограниченым числом подключений
1 2 3 4 5
Ed
Да-да. А можно еще poll, epolls, pyevent через тот же eventlet.hubs.use_hub
Lexander
o7412369815963
можно попробоват ьиспользовать селект
Там тоже есть свое ограничение FD_SETSIZE, которое по-умолчанию равно 1024. Понятно, что можно перекомпилировать ядро/библиотеки, но само ограничение никуда не денется.
Да и вычислительные ресурсы сервера раньше закончатся. При таком большом кол-ве подключений узким местом может быть дисковая подсистема.
Ed
Это уже зависит от задач. Если с диска не читать, то узким местом может быть скажем процессор или память. Но это уже другая история.
CryptSpirit
Ed
Как же тогда оценивать ?
Как есть. Просто скажите что не так (ну тип по науке и эстетике)
Ed
thread.error: can't start new thread
Да да. Это моя мозоль.
Ed
похоже на ограничение по файловым дескрипторам
На моем Дебиане после добавления threading.stack_size плевался фразой что не может создать больше файлов. Но 1000 переплюнул.
regall
Посмотрите в код фреймворка/сервера Tornado и почитайте о проблеме 10k - http://www.kegel.com/c10k.html. Также познавательным будет знакомство с сервером YAWS - http://yaws.hyber.org.
Спасибо посмотрю.
Может кто то дать ссылку на какую нибудь статью (по подробней) о селекте.
В обще идея сервера простая. Цель эксперимент с онлайн игрой на Питоне (именно на Питоне). Не хочется с самого начала оставлять сервер на низких кол. подключений. Да и идея в что сервер и клиент будут сценариями на Питоне.
Ed
CryptSpirit
Как есть. Просто скажите что не так (ну тип по науке и эстетике)
Дык это же и будет пинание :)

Для начала читайте тут: http://www.python.org/dev/peps/pep-0008/ и запустите pylint .
Он оценил ваш код в 2.89 по десятибальной шкале.
Доведите оценку до девяти хотя бы. Потом можете показать результат здесь и продолжим.

Спасибо посмотрю.
Советую не распыляться. eventlet уже все умеет, берите и пользуйте. Впрочем если вам охота поковыряться, тогда конечно.
CryptSpirit
Ed
Для начала читайте тут: http://www.python.org/dev/peps/pep-0008/ и запустите pylint .
Он оценил ваш код в 2.89 по десятибальной шкале.
тогда оффтоп. Вот взять к примеру a=a+1 или a+=1. Используя profile и функции с циклами (для ощущения ризницы во времени циклы были не маленькими) показало что быстрее выполняется первый пример. В варианте с умножением скорость первой конструкции обогнала конкурентку в два раза. Зачем тогда вообще использовать конструкции вида += если это идет во вред производительности? Либо я что то не понял и в этом всем есть скрытая мудрость. Я новичке и при всем разнообразии стилей написания кодов меня реально волнует только производительность. Поправте меня если я не прав.
Александр Кошелев
CryptSpirit
Либо я что то не понял и в этом всем есть скрытая мудрость. Я новичке и при всем разнообразии стилей написания кодов меня реально волнует только производительность.
Скрытая мудрость в том, что в разработке совсем не всегда требуется максимальная производительность. Питон не выбирают за скорость, у него другие преимущества.
CryptSpirit
Daevaorn
у него другие преимущества.
Ну дак потерять процессорное время на подсчете номера подключения к серверу место того что бы реально уделить его например обработке трехтысячного потока (образно выражаясь конечно же), когда средствами языка этого можно избежать. Ну режте меня на куски не понимаю. Ясно что это не скоростной болид типа С но у всего же есть свои разумные рамки. И пусть настанет конец света, а я более чем уверен что в длительных циклах в Питоне у меня пальцы не двинуться с места что бы написать что то типа +=.
Alex_Kutsan
Я такое сделал на тредах. РАботает неплохо. Значит неограниченое число подключений, и клиент выбирает себе другого клиента из подключённных и ожидающих( Во как завернул фразу) Есть конечно свои глюки, никак не могу сделать чтоб при отключении клиента тред не выдавал ошибку. Но это мелочи.
Боюсь позорится выкладывать свой код после кода Ed.
CryptSpirit
Alex_Kutsan
клиент выбирает себе другого клиента
У мну сломался мозг. Прошу амнистии. А как это?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB