RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Интересное о malloc в multithreding'е


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Papa KarlЫ
To : XPEH
Subj : Интересное о malloc в multithreding'е

> > Странную вещь обнаружил работая под VAC 3.08
> > Есть сервер, запускающий нитки обслуживания. Эти нитки запускают расчетные нитки, которые раз в секунду используют malloc для резервирования небольшого количества памяти.
> > Запускаем под отладчиком .
> > коннектимся. стартуем расчетную нитку - все ок.
> > еще коннектимся вторым клиентом и запускаем все как раньше - имеем на вызове malloc системный иксепшн - XCPT_GUARD_PAGE_VIOLATION
> > Это не смертельно, но противно . обидно за трату ресурса и, совершенно непонятно.
> > Увеличение стека нитки не помогает.
> > Может кто разбирался с этим?
>
> у ниццка в socksd тоже самое наблюдается.
> насколько я понимаю, вакк коммитит только первую страницу стека.
> остальные коммитятся по обращению к ним - когда и возникает это самое эхепшен.
>
> можно ли это изменить какими нибуть настройками - надо читать в доке.

я с вами всеми удивляюся.
Прочитать index.html - не судьба ?
или в доке про работу с пользовательскими кучами

> вот в VP например прямо при создании нити можно указывать должен ли ее стек
> быть закоммичен или нет.
>
> попутно.
> раз у тебя очень схожая задача - есть огромная просьба, проследить,
> течет ли твоя программа памятью за скажем 10 суток работы.
> потому что упомянутый выше socksd именно течет, причем применяя все инструменты
> отладки мы с ниццком до сих пор не можем выяснить причину :(
> поттекает редко и небольшими порциями, кажется именно когда несколько параллельно
> ниток обслуживают запросы. так сразу и не заметишь - но за десятки суток запросто
> утекает на мегабайты.
>
Вопрос - откуда следует что утекает, а не получается фрагментация кучи ? В последнем случае один из простейших способов борьбы - организация нескольких куч - типа для мелких, средних и больших объектов. Плюс стандандартная куча для бункций бибилотеки

Sat 01 May 2004 18:58 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.4.1) Gecko/20031




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.