Минимизация объема памяти в программах на C

Какие у меня есть варианты минимизации объема памяти в программах на C в Linux (* nix)?

Насколько мне известно, libc malloc () использует либо brk ( ) или mmap (). Память, выделенная с помощью brk (), обычно не может быть возвращена из-за фрагментации памяти.

Моя программа должна работать круглосуточно и без выходных, и она выполняет много функций malloc () и free (). После запуска RSS увеличивается примерно до 100 МБ. Это слишком много, потому что я точно знаю, что в любой конкретный момент в памяти находится меньше 100 Мб данных.

Вероятно, это проблема фрагментации brk ().

Итак, какие у меня здесь варианты?

] Следует ли использовать другую реализацию malloc (), которая использует только mmap ()? Я должен сделать что-нибудь еще? Могу я что-нибудь прочитать о проблеме с объемом памяти?

Спасибо.

9
задан Marko Kevac 27 November 2010 в 15:29
поделиться