Фрагментация памяти происходит, когда фрагменты памяти освобождаются между двумя активными фрагментами.Представьте себе блок памяти примерно так ...
AAAAAAAAAAAAAAAABBBBCCCCCCCCCCCC
Предположим, что B больше не нужен.Если мы освобождаем пространство, которое использовал B, мы имеем что-то вроде ...
AAAAAAAAAAAAAAAA----CCCCCCCCCCC
Теперь у нас есть пробел, в который мы можем помещать только довольно маленькие объекты. Копирующий сборщик мусора может перемещать вещи так,что у нас есть ...
AAAAAAAAAAAAAAAACCCCCCCCCCC---- (more free space here
)
Большинство современных коллекционеров могут перемещать вещи на месте.То есть вы можете видеть, как C может быть «сдвинут», чтобы занять старое пространство B, и, таким образом, нет никаких накладных расходов памяти.