Patent ID: 8024378

Claim:
A system for nursery garbage collection in a virtual machine environment, comprising: a computer server that includes a microprocessor; a virtual machine for executing a software application; a memory space, divided into a multiple space nursery and an old space heap, for use by the virtual machine in storing software objects and pointers as part of the software application, wherein the multiple space nursery includes a nursery body space including a nursery body, and a plurality of nursery tail spaces, including a first nursery tail and a second nursery tail, each of which nursery tails are provided separately from each other and from the nursery body within the nursery, each of which nursery tails can also be garbage-collected separately from one another so that live objects therein are promoted to the old space heap; a nursery garbage collector that garbage collects the nursery spaces to reduce the promotion rate, including alternately garbage collecting within a selection of the nursery body, first nursery tail, and second nursery tail; wherein during execution of the software application, the system alternately selects one of the nursery tails within which to allocate the objects, allocates the objects in an order that includes the nursery body, and then the selected nursery tail, garbage collects a selection of the nursery body and nursery tails, leaving others of the nursery body and nursery tails until a subsequent nursery collection, allocates the objects in an order that includes the nursery body and the other nursery tail, and repeats the object allocation and garbage collection with different selections and orders of allocation of the objects within the nursery body and the nursery tails; and an old space garbage collector, that subsequently garbage collects objects that have been promoted to the old space heap.