Существует ли какая-то библиотека malloc, предоставляющая интерфейс для освобождения памяти обратно в ОС?

#malloc

#malloc

Вопрос:

Я не знаю, существует ли библиотека malloc, предоставляющая интерфейс для освобождения памяти обратно в ОС при ее вызове….. Если нет, что я могу сделать для этого?

Ответ №1:

В некоторых операционных системах вы можете использовать sbrk для уменьшения размера вашей арены. Это может вернуть или не вернуть эту память обратно в ОС.

В современном мире виртуальной памяти это может быть не так уж необходимо. Есть большая вероятность, что, если вы просто прекратите использовать память, она будет заменена и никогда не будет возвращена в основное хранилище (хотя она все еще может занимать адресное пространство и файловое пространство подкачки) — все зависит от ОС.

Ответ №2:

Это должно происходить автоматически free() , но иногда malloc_trim() помогает явное:

http://man7.org/linux/man-pages/man3/malloc_trim.3.html