Привет форумчане. Странные вещи творятся в с++ и системе.
Если контейнер(такой чтоб лежал последовательно в памяти) наполнить то память естественно вырастет. Но если потом даже удалить из контейнера все элементы, то потребление памяти не снижается. Если проверить память дважды, то на второй раз потребление памяти незначительно снижается на некоторых контейнерах. Оно понятно, что plain контейнеры резервирую память на будующее для уменьшения аллокаций. Но даже если контейнеру сделать swap с пустым, то потребление памяти всё равно не уменьшается. Смею предположить, что это ещё какая-то системная фича, мол если процесс затребовал себе гектар, потом освободил его, то система не забирает его сразу обратно, мало-ли ещё понадобится. Я сделал такой вывод ещё потому, что даже если выделаю через new много памяти, то после delete освобождается только половина.
Мои потуги можно увидеть тут https://github.com/LuxoftAKutsan/TestsAndResearch/tree/master/free_memory_smo...
Вопросы к форумчанам :
1) Где почитать матчасть по этой теме.
2) Может я лажаю в коде и у меня реальные утечки?
3) Как бы заставить систему вернуть себе более не используемую мной память.