Method and apparatus for optimizing exact garbage collection of array nodes in a carded heap
First Claim
1. A computer controlled method for optimizing a garbage collection operation on a plurality of pointer values in a pointer array in a card-marked heap, said pointer array having a plurality of elements, wherein said method comprises steps of:
- (a) parameterizing said pointer array dependent on a programmed loop operation resulting in a pointer data parameterization specifying a pattern of pointer assignments associated with said pointer array;
(b) storing, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation; and
(c) optimizing said garbage collection operation on said plurality of elements dependent on said pointer data parameterization.
3 Assignments
0 Petitions
Accused Products
Abstract
Apparatus, methods, systems and computer program products are disclosed that optimize a programmed loop that stores pointer variables in an array in a card-marked heap. These methods also optimize garbage collection operations on these pointer variables. Instead of implementing a write-barrier in the body of a programmed loop, the loop is parameterized. This parameterization is associated with the pointer array stored in the heap. This parameterization specifies the first and last modified elements in the array. It further specifies the stride (which indicates how many elements are skipped to reach the next modified element of the array). The parameterization is modified by successive loops that access the array. During a garbage collection operation, the array'"'"'s parameterization is used to optimize the process of locating modified elements in the array.
113 Citations
27 Claims
-
1. A computer controlled method for optimizing a garbage collection operation on a plurality of pointer values in a pointer array in a card-marked heap, said pointer array having a plurality of elements, wherein said method comprises steps of:
-
(a) parameterizing said pointer array dependent on a programmed loop operation resulting in a pointer data parameterization specifying a pattern of pointer assignments associated with said pointer array; (b) storing, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation; and (c) optimizing said garbage collection operation on said plurality of elements dependent on said pointer data parameterization. - View Dependent Claims (2, 3)
-
-
4. A computer controlled method for optimizing an assignment operation within a programmed loop operation to a plurality of elements in a pointer array in a card-marked heap, wherein said method comprises steps of:
-
(a) parameterizing said pointer array dependent on a programmed loop operation characterized by a current pointer data parameterization and an existing pointer data parameterization associated with said pointer array resulting in a modified pointer data parameterization being associated with said pointer array; and (b) storing, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. An apparatus having a central processing unit (CPU) and a memory coupled to said CPU for optimizing a garbage collection operation on a plurality of pointer values in a pointer array in a card-marked heap of said memory, said pointer array having a plurality of elements, said apparatus comprising:
-
a parameterization mechanism configured to parameterize said pointer array dependent on a programmed loop operation resulting in a pointer data parameterization specifying a pattern of pointer assignments associated with said pointer array; a storage mechanism configured to store, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation; and an optimization mechanism configured to optimize said garbage collection operation on said plurality of elements dependent on said pointer data parameterization. - View Dependent Claims (11, 12)
-
-
13. An apparatus having a central processing unit (CPU) and a memory coupled to said CPU for optimizing an assignment operation within a programmed loop operation to a plurality of elements in a pointer array in a card-marked heap of said memory, comprising:
-
a parameterizing mechanism configured to parameterize said pointer array dependent on a programmed loop operation characterized by a current pointer data parameterization and an existing pointer data parameterization associated with said pointer array resulting in a modified pointer data parameterization being associated with said pointer array; and a storage mechanism configured to store, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer program product comprising:
-
a computer usable storage medium having computer readable code embodied therein for causing a computer to optimize a garbage collection operation on a plurality of pointer values in a pointer array in a card-marked heap of said memory, said pointer array having a plurality of elements, said computer readable code comprising; computer readable program code devices configured to cause said computer to effect a parameterization mechanism configured to parameterize said pointer array dependent on a programmed loop operation resulting in a pointer data parameterization specifying a pattern of pointer assignments associated with said pointer array; computer readable program code devices configured to cause said computer to effect a storage mechanism configured to store, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation; and computer readable program code devices configured to cause said computer to effect an optimization mechanism configured to optimize said garbage collection operation on said plurality of elements dependent on said pointer data parameterization. - View Dependent Claims (20, 21)
-
-
22. A computer program product comprising:
-
a computer usable storage medium having computer readable code embodied therein for causing a computer to optimize an assignment operation within a programmed loop operation to a plurality of elements in a pointer array in a card-marked heap of said memory, said computer readable code comprising; computer readable program code devices configured to cause said computer to effect a parameterizing mechanism configured to parameterize said pointer array dependent on a programmed loop operation characterized by a current pointer data parameterization and an existing pointer data parameterization associated with said pointer array resulting in a modified pointer data parameterization being associated with said pointer array; and computer readable program code devices configured to cause said computer to effect a storage mechanism configured to store, within said programmed loop operation, said plurality of pointer values into said plurality of elements without marking said card-marked heap within said programmed loop operation. - View Dependent Claims (23, 24, 25, 26, 27)
-
Specification