The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Контроль объема используемой памяти на Си"
Отправлено Virius, 23-Дек-08 12:04 
Всегда были проблемы при работе с памятью, и сейчас возник следующий вопрос. У меня в программе на Си в Linux'е используется динамический список. Соответственно есть два потока: один добавляет в список записи, другой их обрабатывает и удаляет. Для выделения/очистки памяти используется *alloc/free. Добавление происходит быстрей удаления, что естественно ведет к постоянному росту списка, что в конечном счете может привести к переполнению памяти. Соответственно вопрос, как этого избежать? Можно ли, например, задать программе (внутри самой программы) какое-то ограничение на объем доступной памяти, и при этом, соответственно, определить момент, когда этот предел будет достигнут (в этом случае можно было бы делать паузу и ждать, пока снова не появится достаточно доступной памяти)? Просто подсчитывать количество выделенной памяти ведь не подойдет, так как выделяемые и освобождаемые участки памяти всегда разной длины, что ведет к дефрагментации и в конечном счете доступно будет гораздо меньше памяти, чем действительно свободно.

Кроме того, я пытался использовать процессы вместо потоков и разделяемую память, но в этом случае ограничение на объем доступной разделяемой памяти оказался слишком маленький (не то 32Мб, не то 64). Может кто-нибудь знает, как увеличить это ограничение хотя бы до 2Гб?

И забыл сказать. Программа написана под Red Hat Enterprise Linux 3.0 (ядро linux 2.4.21)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру