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