Какие у меня есть варианты минимизации объема памяти в программах на C в Linux (* nix)?
Насколько мне известно, libc malloc () использует либо brk ( ) или mmap (). Память, выделенная с помощью brk (), обычно не может быть возвращена из-за фрагментации памяти.
Моя программа должна работать круглосуточно и без выходных, и она выполняет много функций malloc () и free (). После запуска RSS увеличивается примерно до 100 МБ. Это слишком много, потому что я точно знаю, что в любой конкретный момент в памяти находится меньше 100 Мб данных.
Вероятно, это проблема фрагментации brk ().
Итак, какие у меня здесь варианты?
] Следует ли использовать другую реализацию malloc (), которая использует только mmap ()? Я должен сделать что-нибудь еще? Могу я что-нибудь прочитать о проблеме с объемом памяти?
Спасибо.