In systems with automatic garbage collection, most garbage is relatively short-lived. An effective approach for reducing garbage collection costs is to perform frequent, relatively cheap collections on recently allocated storage objects, and to perform relatively expensive but infrequent collections on older objects. Generational scavenging is an implementation of this idea, where active objects are classified into generations according to their age. The word tenuring refers to the promotion of an object from the young generation to the old generation in a two-generation scheme.
The authors instrumented a Smalltalk system to collect data on how long each object remains in use. They obtained extensive data for several Smalltalk programs and analyzed how well generational scavenging would work as its parameters were varied. They discovered that different programs display widely differing behaviors and that, to be effective, the scavenging algorithm must use a feedback mechanism to adapt itself.
This well-written paper contains much background information and long detailed discussions on the practical issues involved in instrumenting a system to obtain object lifetime information. I found this part of the paper much more interesting than the adaptive scavenging policy that was the main result. My only critical comment is that all the data came from a Smalltalk system. It is unclear whether similar object lifetime characteristics would be observed with application programs implemented in other languages and used in other environments.