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

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

Скока можно одновременно сетевых подключений и потоков? [D6, Win2k]


Mad_Ghost ©   (2002-12-06 14:53:00) 

1. Уважаемые мастера, никто не задавался вопросом, скока программируя на Делфи можно открыть потоков одновременно?
анпример Апач выдерживает 1000 потоков как я слышал, а скока я могу сделать, это зависит от машинки, или от чего ещё?
2. И сколько можно держать одновременно сетевых соединений, через TServerSockets и 2.1 TTCPServer ??????

очень нужно, заранее благодарен.


VaS   (2002-12-06 16:58:00) [1]

Еще надо учитывать размер стека каждого потока. По умолчанию в виндоус он равен 1М.
To Romkin: с таким кодом осторожнее - не забудь выставить руками IsMultiThread:=true.


Digitman   (2002-12-06 15:55:00) [2]


> скока я могу сделать, это зависит от


как ОС (платформы), так ресурсов, находящихся в ее распоряжении на конкр.момент времени


Anatoly Podgoretsky   (2002-12-06 15:49:00) [3]

В 9х это будет еще хуже, порядка 1500 или менее


Sha   (2002-12-06 15:42:00) [4]

Думаю макс. под NT 65355 соединений, реально достигнуть 4000-5000.


Digitman   (2002-12-06 15:29:00) [5]

Практически же каждый процесс может иметь не более 64к потоков

Ибо ВАП процесса - не резиновое, а 1-й эл-т TEB-стека процесса расположен по вирт.адресу 7FFDD000, каждый эл-т = 4к и растет стек в сторону уменьшения адресов.


Mad_Ghost   (2002-12-06 15:26:00) [6]

аха, понял большое спасибо Вам .....


Digitman   (2002-12-06 15:23:00) [7]


> программируя на Делфи


Причем здесь Делфи ?


> скока я могу сделать, это зависит от машинки, или от чего
> ещё?


Теоретически - до 2^32 - 1. ОС ведет сч-ки потоков каждого процесса в полях типа ULONG

I>
> сколько можно держать одновременно сетевых соединений, через
> TServerSockets


Теоретически - Min(MAX_LONG, MAX_SOCKETS)


Anatoly Podgoretsky   (2002-12-06 15:16:00) [8]

Mad_Ghost © (06.12.02 15:12)
Количество также системой ограничено, где то в реестре прописано, поэтому может быть разное


Mad_Ghost   (2002-12-06 15:12:00) [9]

на счет потоков понятно, спасибо, а вот ещё на счет сетевых подключений? по TCP, например клиент присоединился передал че нужно и сразу удаляется, или можно например, установить соединение и висеть немеряно долго, и например 1000 соединений, такое возможно?


Romkin   (2002-12-06 15:04:00) [10]

Насчет потоков - не считал, но оооочень много, и это от системы зависит :-))

procedure ThreadProc(Parm: pointer);
var
i,j: integer;
begin

while true do
begin
i := 0;
j := 0;
while i < MAXINT - 1 do
begin
i := i + 1;
j := i - 1;
end;
end;
end;

while true do
beginThread(.. ThreadProc, nil, ... );

что-то вроде этого...

- NT дохнет быстро


Наверх

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