Освободил я, значит, память процесса через free или delete. Проверил Valgrind'ом - чисто, пишет.
В диспетчере задач (неважно, какой ОС) всегда вижу, что размер памяти, занятой процессом, как был на одном уровне, так и остался.
Но взять, например, Firefox - у него после закрытия пары вкладок сразу падает потребление памяти. Т.е. операционная система освобожденные страницы памяти забирает.
В связи с чем вопрос - есть ли какие-то способы заставить ОС принудительно забрать обратно освобождённую память? Есть ли какие-то стандарты, описывающие, когда ОС забирает память назад, а когда нет? Есть ли какие-то различия в этом для различных ОС?
UPD: Решено.
Вариант1: Использовать свои менеджеры памяти, отличные от free/delete
Вариант2:
When the amount of contiguous free memory at the top of the
heap grows sufficiently large, free(3) employs sbrk(2) to
release this memory back to the system. (This can be useful
in programs that continue to execute for a long period after
freeing a significant amount of memory.) The M_TRIM_THRESHOLD
parameter specifies the minimum size (in bytes) that this
block of memory must reach before sbrk(2) is used to trim the
heap.