Является ли сборка мусора в языке программирования, используемом для сбора динамической памяти, ничем иным?

276
FunctionBlock

Сборка мусора для утилизации объекта, который больше не используется, состоит в освобождении памяти кучи? Утечка памяти представляет собой недостаточно места в куче памяти для запуска программы? Итак, что мы обычно говорим «нехватка памяти» относится к «нехватке памяти во время выполнения», что означает «куча памяти»?

1

1 ответ на вопрос

0
Mureinik

Сборка мусора обычно действительно относится к куче памяти.

Обратите внимание, что утечки памяти и ошибки нехватки памяти не являются синонимами. Утечка памяти - это ситуация, когда некоторый кусок выделенной памяти (например, объект на языке OO) больше не нужен, но по какой-то причине не может быть освобожден / собран (например, программист забыл очистить некоторую ссылку на него).
У вас может быть утечка памяти, которая не вызывает ошибку нехватки памяти (если утечка достаточно мала), и вы можете получить такую ​​ошибку, не имея утечки памяти (если вы законно пытаетесь выделить больше памяти, чем доступно для процесса ).

Похожие вопросы