Generational collectors are well known as a tool for shortening pause times incurred by garbage collection and for improving
garbage collection efficiency. In this paper, we investigate how to best use generations with on-the-fly collectors. On-the-fly
collectors run concurrently with the program threads and induce very short program pauses. Thus, the motivation for incorporating
generations is focused at improving the throughput; pauses do not matter, since they are already very short. We propose a
new collection approach, denoted age-oriented collection, for exploiting the generational hypothesis to obtain better efficiency. This approach is particularly useful
when reference counting is used to collect the old generation, yielding a highly efficient and non-obtrusive on-the-fly collector.
Finally, an implementation is provided demonstrating how the age-oriented collector outperforms both the non-generational
and the generational collectors’ efficiency.