Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

А что будет быстрее работать при написании приложения для сети?


Страницы:   1 2 3

nester ©   (2004-04-09 16:08:00) 

Меня интересует намного ли будет тормознутее работать сетевая прога написаная на Делфи/Kylix под линух по сравнению с С.
Специфика проги - Держать много открытых коннекшенов TCP и обменивать данные между ними.
Коннекшенов будет ооооочень много, порядка милионов, ну железо тоже будет соответствующее.
Вод думаю на Делфи/Kylix под линух писать. Но прежде интересуюсь на сколько это медленнее будет работать, желательно ответ услышать типа примерно в х раз%)))
Заранее благадарю


nikkie   (2004-04-09 19:46:00) [21]

>:)))) Читай выше.
выше я уже перестал понимать, что именно обсуждают.
проблема в том, что у одного серверного порта есть ограничение на количество клиентов? если так, то решение в точности как в [34], только диспетчер выдает не ip, а номер порта, к которому коннектиться. зачем с ip заморачиваться-то?


nester   (2004-04-09 19:30:00) [22]

:)))) Читай выше.
А мне больше с ДНС все равно нравиться, меньше запросов к серверу, меньше лишних коннектов ...


nikkie   (2004-04-09 18:52:00) [23]

а зачем по ip разводить? не проще по нескольким серверным портам?


Digitman   (2004-04-09 18:47:00) [24]


> nester ©   (09.04.04 18:41) [33]


так я и говорю, что лучше не напрягать ДНС !

клиент делает запрос к ДНС, получает некий фикс.адрес
далее по этому адресу клиент делает запрос к серверу, мол, дай актуальный, наиболее свободный в дан.момент интерфейсный адрес ... сервер, подумав куда "развести" данногго клиента, отвечает и тут же рвет коннект ... клиент, получив акт.адрес интерфейса, делает коннект уже к нему, к акт.адресу


nester   (2004-04-09 18:41:00) [25]

2Digitman ©   (09.04.04 18:32) [31]
Почему лучше?
Это отсеется сразу много "лишних" запросов в варианте с ДНС.


Verg   (2004-04-09 18:36:00) [26]


> Digitman ©   (09.04.04 18:29) [30]


Да. Я сам частенько путаю connect-accept, особенно по пятницам :)). Вот при connect-е - там да, берется произвольный порт из числа незанятых в специальном диапазоне и назначается на localport этого сокета.


Digitman   (2004-04-09 18:32:00) [27]


> nester ©   (09.04.04 18:26) [29]


да, вариант без использования ДНС провайдера, пожалуй, лучше будет


Digitman   (2004-04-09 18:29:00) [28]


> Verg ©   (09.04.04 18:17) [27]


могу и заблуждаться ... ты уверен ?


nester   (2004-04-09 18:26:00) [29]

В конечном счете можно будет заложить в протокол выбор айпишника при запросе с сервера. Типа основной айпишник, который будет при коннекте раздавать айпишник для коннекта и сразу же обрывать соедиенение таким образом освобождая порт, но мне кажется с ДНС лучше будет, к тому же к одному доменному имени можно будет прописать наверно тоже 65к айпишников:)))


nester   (2004-04-09 18:23:00) [30]

2Digitman [25] А ето мне кажется просто очень будет. На одно доменное имя привязать 16 айпишников, ДНС сервера будут выдавать их примерно случайно и нагрузка как показывает опыт распределяется болееменее равномерно с разницей примерно 15-20%(не очень большой разброс)
Тогда возникает вопрос а какой ето ДНС сервер сразу будет успевать раздавать так быстро айпишники%)))?
Ну а для етого у каждого провайдера каждого уровня есть свой кэширующий ДНС сервер, он по каждому запросу не будет лезть на основной, а будет выдавать айпишник из кэша.
Проверяли уже:)))


Verg   (2004-04-09 18:17:00) [31]


> Digitman ©   (09.04.04 18:07) [23]


Погоди, погоди....
При accept-е образуется "присоединенный" сокет, localport, которого равен порту слушающего сокета от которого он с-accept-ился.


nester   (2004-04-09 18:16:00) [32]

Я сомниваюсь в оптимизаторе:))), я думал это и так понятно.
Насколько будет оптимально
Я сомниваюсь в оптимальности скомпелированого кода:)))
Точно так же как разница между программами написаными на делфи и си под винду(ну или масме :))). При этом я понимаю разницу в трудозатратах.

2Digitman[23] - спасибо, я примерно так и представлял себе, теперь убедился.
Т.е. вопрос на число открытых соединений решается добавлением айпишников:)))


Digitman   (2004-04-09 18:11:00) [33]


> В любом случае решается все просто - добавлением айпишников
> для одного сервера


вот чтобы получить около миллиона одновременных коннектов, тебе и придется не менее 16 "айпишников" добавлять

а ты о клиенте подумал ? он как, по твоему, будет искать сервер, ежели заранее не знает, какой из "айпишников" в дан.момент имеет возможность акцептировать его запрос ?

нет, это несколько по-другому реализуется ...


Verg   (2004-04-09 18:07:00) [34]


>  Впрос с сервером, хочу прикинуть потянет ли все ето киликс
> или нет?


Так не Киликс же "тянуть"-то будет, а программа на нем написанная и откомпилированная. Все зависит от того, как будет написана программа.
Ты в чем сомневаешься - в оптимизаторе Киликса или в чем?

Это как справшивать - на каком Асм-е программа будет работать быстрее - на At&T-шном или на MASM-е.


Digitman   (2004-04-09 18:07:00) [35]


> nester ©   (09.04.04 18:02) [22]


Апач, равно как и любой иной сервер, использующий ТСР-транспорт, имеет фикс.гнездо на фикс.порту... это гнездо есть "слушающее" .. при поступлении кл.запроса на коннект код сервера выполняет акцепт, в рез-те чего автоматически создается отд.гнездо с динамически присвоенным номером порта из списка свободно-доступных в системе, после чего слушающее гнездо продолжает "слушать" новые запросы


nester   (2004-04-09 18:02:00) [36]

2Digitman [18]
А как апач весит на одном порту?
Или каждому соединению порт переопределяется?
Или как?
В любом случае решается все просто - добавлением айпишников для одного сервера


nester   (2004-04-09 17:58:00) [37]

Ето сервер будет:)) который должен с этим справиться:)
У клиента будет одно соединение - к серверу и все. С клиентом вопросов не возникает. Впрос с сервером, хочу прикинуть потянет ли все ето киликс или нет?
Или на С писать -  но на С у нас программеров нет в конторе - придется нанимать когото:(
Вот я и хотел узнать, можно на киликсе такое потянуть или нет? Нужен программер С или киликсом обойтись можно.
В начале планируется поставить дуал Оптерон(ето AMD 64-битный) с двумя гигами оперативки под SuSe Linux, вот хочу узнать сколько такая тачка выдержит? То что все обрабатываться сишным кодом, который написан задолго до меня, и то что мне только нужно вызывать нужное - я уже понял, а что киликсу останется? или киликс будет переводиться в сишный код и компиляться как сишный код? Я сомневаюсь в этом.
И еще вопрос какую базу данных лучше использовать, MySQL мне кажется сдохнет, но не уверен.
Для базы требования простые - быстрая выборка селектов.
Всякие утяжеления типа транзакции и хранимые процедуры не нужны.
Интербэйз(точнее его бесплатная версия файрберд кажется зовется) кажется тяжеловат, или его можно скомпилять без поддержки хранимых процедур и транзакций?


Digitman   (2004-04-09 17:56:00) [38]


> Verg ©   (09.04.04 17:54) [19]


ну да ... уточнение правильно


Verg   (2004-04-09 17:54:00) [39]


> Digitman ©   (09.04.04 17:50) [18]


Четверкой чисел адрес:порт(local)-адрес:порт(remote)


Digitman   (2004-04-09 17:50:00) [40]


> почему можно делать много соединений на одном порту


как раз нельзя

виртуальная петля соединения однозначно определяется на каждой из сторон комбинацией "адрес:порт"


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо