Как представить эту операцию уборщика мусора?
В главе 21 4-го издания книги Рихтера есть описание работы уборщика мусора, где говорится, что на этапе сжатия он в том числе перемещает вниз (это куда и каким образом?) все "немусорные" объекты, чтобы они занимали смежный блок памяти, затем CLR вычитает из каждого корня количество байт, на которое объект был сдвинут вниз в памяти. Вообще не понятно, как это представить графически, и что из чего потом вычитается.