This is a fascinating paper on garbage collection, a subject in which strong opinions are common, but experiential wisdom is rare. The software engineering advantages of garbage collection over programmer directed memory management are generally accepted, but the performance trade-off in languages that have garbage collection is unexplored.
This paper reports on extensive experiments that showed a clear mutator performance advantage for contiguous allocation over free-list allocation. Manual allocation using the malloc() and free() methods employs free-list allocation. Hardware architectural trends toward the increasing use of hierarchical cache memory will continue to lean in favor of contiguous allocation, due to the principles of data and task locality. Neither standard manual nor explicit memory management is able to exploit the locality advantages of continuous allocation, so garbage collection will very likely show an even higher performance advantage over manual allocation as computer architecture evolves.
Results are given in the paper for several collection algorithms, and thus the paper also provides insights for memory management designers on collection algorithms that could tune themselves to improve performance in long running applications.
This is an excellent paper, which is well written and well documented. It represents the state-of-the-art on garbage collection technology. It is a must read for the performance specialist, the software architect, and the hardware architect.