A system and method for intelligent generational garbage collection using
a dynamic window. During normal memory allocation, a sliding window
defines a young generation within an older generation or other area of
memory. When data are stored that will become garbage within a finite
period of time, a temporary phase of operation is initiated. In the
temporary allocation phase, the lower bound of the window is fixed, while
the upper bound is allowed to expand to accommodate new objects. When the
data become garbage, the window is garbage collected and compacted, and
normal memory allocation and garbage collection operations resume. Thus,
the window is dynamic in both movement and size. When the temporary
allocation phase is initiated, the young generation may be garbage
collected and compacted, and the lower window bound may be fixed at the
location (e.g., address) where the allocation point was when the target
data were stored.