Patent ID: 8176100
Filing Date: 2012-05-08
Classification: G06F

Abstract:
1. A system for managing immutable and non-immutable objects generated by executing a program, comprising: a storage device for distinguishably storing said immutable and non-immutable objects, said immutable and non-immutable objects including old objects that are objects having existed for not less than a predetermined period since being generated and new objects that are objects having existed for less than the predetermined period since being generated; a generation unit for storing a generated object as an object of the new objects in the storage device when generating the generated object along with the execution of the program; a selection unit for selecting a selected new object from the new objects stored in the storage device, wherein the selected new object has existed for not less than the predetermined period since being generated; a search unit for searching the storage device to find a corresponding object of the old objects, the corresponding object having the same content as the selected new object; a store unit for newly storing the selected new object as an object of the old objects in the storage device if no corresponding object having the same content as the selected new object is found; an integration unit for integrating a reference to the selected new object with a reference to the corresponding object of the old objects, the corresponding object having the same content as the selected new object, if the corresponding object is found; and a generational garbage collector unit for performing a process of freeing up a memory space used by an object not referred to by any other objects, while using different storage areas in the storage device as an old generation area and a new generation area, respectively, the process performed more frequently for the objects on the new generation area than for the objects on the old generation area, and for tenurinq an object which satisfies a predetermined condition from the new generation area to the old generation area; wherein the storage device stores the old objects in the old generation area and the new objects in the new generation area; when newly generating an object along with the execution of the program, the generation unit stores the generated object in the new generation area; the selection unit determines that a new object has existed for not less than the predetermined period since being generated, when the generational garbage collector unit determines that the new object is qualified to be tenured from the new generation area to the old generation area; if no corresponding object having the same content as the selected new object is found in the old generation area, the store unit generates in the old generation area an object having the same content as the selected new object in the old generation area; if a corresponding object having the same content as the selected new object is found in the old generation area, the integration unit changes a reference to the selected new object into a reference to the corresponding object stored by the store unit; and if the integration unit has changed a reference to the selected new object from another object into a reference to the corresponding object, the generational garbage collector unit frees up a memory space used by the selected new object.