#malloc
#malloc
Вопрос:
Я не знаю, существует ли библиотека malloc, предоставляющая интерфейс для освобождения памяти обратно в ОС при ее вызове….. Если нет, что я могу сделать для этого?
Ответ №1:
В некоторых операционных системах вы можете использовать sbrk
для уменьшения размера вашей арены. Это может вернуть или не вернуть эту память обратно в ОС.
В современном мире виртуальной памяти это может быть не так уж необходимо. Есть большая вероятность, что, если вы просто прекратите использовать память, она будет заменена и никогда не будет возвращена в основное хранилище (хотя она все еще может занимать адресное пространство и файловое пространство подкачки) — все зависит от ОС.
Ответ №2:
Это должно происходить автоматически free()
, но иногда malloc_trim()
помогает явное: