Я наблюдаю следующее поведение в моей тестовой программе:
Я делаю malloc()
для 1 МБ и затем free()
после sleep(10)
. Я делаю это пять раз. Я наблюдаю потребление памяти в top
во время работы программы.
После free()
-d я ожидаю, что потребление виртуальной памяти программы (VIRT) уменьшится на 1 МБ. Но на самом деле это не так. Он остается стабильным. Чем объясняется такое поведение? malloc()
делает некоторый резерв при выделении памяти?