Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection
First Claim
1. In a computer-implemented garbage collector operating in a computer having a heap memory and based on the Train algorithm in which a car represents a fixed-size region of the heap memory, a process for collecting enormous objects, each of which is substantially larger than the fixed-size memory region represented by a car, and for reference insertions into remembered sets of other cars, the process comprising the steps of:
- including at least one enormous object as part of a collection set, evacuating the enormous object by re-linking, finding an unscanned portion of the enormous object, scanning a preset amount of the unscanned portion for references to objects in other cars, wherein if a reference to an object in another car is found, updating the remembered set of that other car, and scanning the enormous object for references into the collection set, if the collection set is not empty.
3 Assignments
0 Petitions
Accused Products
Abstract
A technique for incrementally collecting enormous objects including scanning portions of the enormous objects on different collection steps. The scanning can be accomplished with a number of collection sets where the enormous object is re-linked and older cars remembered sets are updated on subsequent collection steps. Unscanned portions of the enormous object are scanned on subsequent collection cycles until the enormous object has been fully scanned. This incremental collection can be performed concurrently with collections of other generations and applications.
-
Citations
24 Claims
-
1. In a computer-implemented garbage collector operating in a computer having a heap memory and based on the Train algorithm in which a car represents a fixed-size region of the heap memory, a process for collecting enormous objects, each of which is substantially larger than the fixed-size memory region represented by a car, and for reference insertions into remembered sets of other cars, the process comprising the steps of:
- including at least one enormous object as part of a collection set, evacuating the enormous object by re-linking, finding an unscanned portion of the enormous object, scanning a preset amount of the unscanned portion for references to objects in other cars, wherein if a reference to an object in another car is found, updating the remembered set of that other car, and scanning the enormous object for references into the collection set, if the collection set is not empty.
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. An electronic computer controlled train/car collector operating in a computer having a heap memory, wherein a car represents a fixed-size region of the heap memory for collecting enormous objects, each of which is substantially larger than the fixed-size memory region represented by a car, and inserting references into remembered sets of other cars, the collector comprising:
- a collection set including at least one enormous object, means for evacuating the enormous object by re-linking, means for finding an unscanned portion of the enormous object, means for scanning a preset amount of the unscanned portion for references to objects in other cars, wherein if a referenced to an object in an other car is found, means for updating the remembered set of that other car, and means for scanning the enormous object for references into the collection set, if the collection set is not empty.
- View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24)
-
17. A computer readable media comprising:
- the computer readable media containing instructions for executing in a processor of a computer having a heap memory for the practice of a garbage collection process which operates on heap memory regions that have a fixed, equal size, the garbage collection process including at least one enormous object, which is substantially larger than a memory region size, as part of a collection set, evacuating the enormous object by re-linking, finding an unscanned portion of the enormous object, scanning a preset amount of the unscanned portion for references to objects in other cars, wherein if a reference to an object in another car is found, updating the remembered set of that other car, and scanning the enormous object for references into the collection set, if the collection set is not empty.
Specification