Patent ID: 7565499
Filing Date: 2009-07-21
Classification: G06F,Y10S

Abstract:
1. A method for performing garbage collection, comprising: obtaining a memory heap partitioned into a plurality of blocks; obtaining a reference cache comprising an entry; modifying a reference stored at a first location in the memory heap; mapping the first location to the entry and storing the first location in the entry; modifying a reference stored at a second location in the memory heap; mapping the second location to the entry after storing the first location in the entry; comparing the entry with a block corresponding to the second location to generate a comparison result; evicting the first location from the entry based on the comparison result, wherein the first location and the second location are associated with different blocks of the plurality of blocks; storing the second location in the entry after evicting the first location; scanning and summarizing at least the first location after evicting the first location; reclaiming at least one bit of memory in the memory heap for reuse based on the scanning and summarizing of at least the first location; modifying a reference stored at a third location in the memory heap; mapping the third location to the entry after storing the second location to the entry; performing a second comparison between the block address corresponding to the second location and a block address corresponding to the third location after mapping the third location to the entry; and storing the third location with the second location in the entry based on the second comparison wherein the second location and the third location are associated with the same block of the plurality of blocks, wherein evicting the first location from the entry and scanning and summarizing at least the first location is executed by an application thread, and wherein the reference cache is embedded in the application thread.