Patent ID: 7272695
Filing Date: 2007-09-18
Classification: G06F

Abstract:
1. A method of employing a computer system to execute a program including a mutator that allocates objects dynamically in a heap and a garbage collector that collects at least a portion of the heap in space increments, in each of a plurality of which it bases collection of a respective collection set that includes one or more heap regions for each of which it maintains a respective remembered set that indicates where the mutator has written references to objects belonging to that heap region, the method comprising: A) maintaining, for each of a plurality of cards into which the heap is treated as being divided, a count value indicative of how much mutation has occurred in that card; B) on the basis of the count values, selecting cards for membership in a hot-card set; C) concurrently with mutator operation, updating remembered sets in response to mutations of references belonging to some cards without concurrently updating any remembered set in response to any mutation of a reference belonging to a card that is a member of the hot-card set; and D) before performing a collection based on a remembered set, updating that remembered set in accordance with mutations of references belonging to cards in the hot-card set.