Sweeping by the garbage collector
Once the objects that need to be kept are marked, it’s time to start the next phase to actually free the memory. This deletion of the objects is called sweeping in GC jargon. To make it more interesting, we have three kinds of sweeping:
- Normal sweeping
- Sweeping with compacting
- Sweeping with copying
We are going to discuss all these in more detail with illustrations to help you understand what’s going on.
Normal sweeping
Normal sweeping is the removal of unmarked objects. Figure 4.9 shows five objects in memory. Two of them, the ones with an x in them, will be removed.
Figure 4.9 – Schematic overview of memory with marked objects
The memory blocks are not of equal sizes; some of them are smaller while others are larger. After sweeping the unreachable objects, the memory looks as follows:
Figure 4.10 – Schematic overview of memory after sweeping...