![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| cypok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.4.2006 Репутация: нет Всего: нет |
Использую pthreads и VC6 .
Как создать мах кол-во потоков для одного процесса . Больше чем 2019 меня не выходит.... |
|||
|
||||
| zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Нужно увеличить объем виртуальной памяти. Каждый поток хавает порядка 1 МБ стека. Другой способ — уменьшить объем стека. Банальный вопросик: а зачем их столько?
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
| cypok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.4.2006 Репутация: нет Всего: нет |
А если уменьшить размер стека?
Сервер пишу Добавлено @ 17:46
Не помогло.... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
если пишеш сервер -- стоит задуматься об асинхронном способе работы. потому как максимум, на что можеш расчитывать -- 4К потоков ( стека меньшего размера может просто нехватить для нормальной работы потока )
да и винда при таком подходе тормозить по-черному должна... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| cypok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.4.2006 Репутация: нет Всего: нет |
асинхронный метод не подходит ...
Увеличение виртуальной памяти не помогло... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
по какой причине? толи мне кажется толи ты это: уже говорил. мне очень интересно как ты ее увеличивал? есть у меня большое подозрение что не так, как нужно... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| cypok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.4.2006 Репутация: нет Всего: нет |
Скомпилировал pthreads dll с флагом /D "_LARGE_THREADS" , в винде в perfomance options увеличил память.
не подходит из - за специфики сервера... |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
мне это ничего не говорит... гы. а смысл? имелся в виду размер адресного пространства процесса. его увеличивать нужно. + оказывается размер стека потока уменьшить нельзя. поэтому увеличивай размер стека процесса -- ключ /STACK линковщика Добавлено @ 11:41 P.S. тогда подробнее о специфике -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| cypok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.4.2006 Репутация: нет Всего: нет |
_hunter,
Спасибо
помогло |
|||
|
||||
| forker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 27.9.2005 Где: Долгопрудный Репутация: 1 Всего: 1 |
Постойте!!!
Получается, если TaskMan показывает что процесс ест 200кб оперы, то это на самом деле не так? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
абсолютно не так.
но причем тут это?.. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| forker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 27.9.2005 Где: Долгопрудный Репутация: 1 Всего: 1 |
Ну вы тут про пожирательство порядка 1Мб стека одним потоком говорите,
а таскман зачастую показывает всего лишь 200Кб для процессов моих программ. |
|||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: 1 Всего: 10 |
forker, Есть различие между физической, т.е. реальной памятью и виртуальной. На каждый процесс винда отводит 4 гига виртуальной памяти. При этом на свои нужды забирает 2 гига. Остальные 2 гига в твоем полном распоряжении. Но это виртуальная память. Физическая же память по мере надобности. Тем более ее как раз и ограниченное количество на все процессы.
-------------------- Пролетал мимо. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
+ читай в MSDN про выделение памяти потокам ( Thread Stack Size в Platform SDK: DLLs, Processes, and Threads ).
она состоит из reserved ( метр ) и initially committed ( как раз 200к ) бывает что потокам достаточно этой памяти и больше они не требуют -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: 1 Всего: 10 |
cypok, У меня такой вопрос, на какое максимальное число одновременных обрашений ты расчитываеш. Ибо количество потоков не увеличивают производительность системы. А наоборот уменьшают. Ибо увеличевается число переключений между потоками. Что занимает значительное время.
-------------------- Пролетал мимо. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |