Не только память. Еще процессорное время работы сборщика мусора.
Еще очень нетривиальная задача сделать сборщик универсальным: Чтобы и времени много не отъедал (после вызова), чтобы не вызывать задержку, и чтобы общего процессорного времени за большой период тратил немного, дабы общий перфоманс не жрать.
Кусочками памяти после высвобождения еще управлять надо.