Если / Когда освобождается освобожденная память кучи?

Я проводил ночные тесты памяти на встроенной системе Linux. Используя vmstat, я заметил, что свободная память постоянно уменьшается со временем. По некоторым даннымsmaps анализ вprocfsкуча одного процесса растет примерно с той же скоростью. Я подозревал утечку памяти и нашел несколько мест в коде, гдеnew а такжеdelete регулярно используются. Однако я не виделnew звонки без соответствияdelete звонки.

Я снова запустил тест памяти и этим утром очистил кеши памяти следующим вызовом

echo 3 > /proc/sys/vm/drop_caches

Объем свободной памяти, указанный в vmstat, уменьшился до значения, близкого к моменту начала теста.

Регулярно ли ядро восстанавливает неиспользуемые страницы кучи? Если это так, есть ли другие случаи, кроме того, что выше, что это сделано? Вероятно, когда свободная память становится ниже определенного порога?

Ответы на вопрос(3)

Ваш ответ на вопрос