Patent ID: 6842838
Filing Date: 2005-01-11
Classification: G06F,Y10S

Abstract:
1. For satisfying requests for dynamic allocation of blocks of a computer system's computer memory, which includes memory portions designated as young and old generations, wherein the computer system executes a garbage collector that determines whether to promote objects initially allocated in the young generation and that moves such objects into free memory blocks in the old generation when it has thereby determined to promote them, a method that includes: A) maintaining an inventory of memory blocks available for dynamic allocation in the old generation; B) for each of a plurality of size ranges, deriving a demand indicator from a young-object count kept of objects in that size range that the garbage collector has not yet determined to promote; C) in response to release requests that specify respective memory blocks, adding those memory blocks to the inventory; D) for at least some memory blocks in the inventory, making a splitting decision that depends on the value of at least one said demand indicator and the number of inventory memory blocks that are in the size range with which the demand indicator is associated; E) performing splitting operations on at least some memory blocks in the inventory and thereby producing split-result memory blocks only upon a positive outcome of the splitting decision made therefor; and F) satisfying some allocation requests by allocating such split-result memory blocks; wherein at least some of the splitting operations, called preemptive splitting operations, are performed on memory blocks that have been identified by release requests performed before receipt of any allocation request satisfied by allocating a split-result memory block produced thereby.