Garbage Collection
Garbage collection is used to clean up unused objects and so reduce the potential for memory leaks and data corruption. There are two main types of garbage collection: tracing and reference counting. Reference counting schemes record the number of references to a given object and collect the object when the reference count becomes zero. Reference-counting cannot collect cyclic (or circular) references because only one object may be collected at a time. Groups of mutually referencing objects which are not directly referenced by other objects and are unreachable can thus become permanently resident; if an application continually generates such unreachable groups of unreachable objects this will have the effect of a memory leak. Weak references (references which are not counted in reference counting) may be used to solve the problem of circular references if the reference cycles are avoided by using weak references for some of the references within the group. For example, Apple's Cocoa framework recommends this approach, by using strong references for parent-to-child references, and weak references for child-to-parent references, thus avoiding cycles.
Weak references are also used to minimize the number of unnecessary objects in memory by allowing the program to indicate which objects are not critical by only weakly referencing them.
Read more about this topic: Weak Reference
Famous quotes containing the words garbage and/or collection:
“But could a dream send up through onion fumes
Its white and violet, fight with fried potatoes
And yesterdays garbage ripening in the hall,
Flutter, or sing an aria down these rooms
Even if we were willing to let it in,”
—Gwendolyn Brooks (b. 1917)
“The society would permit no books of fiction in its collection because the town fathers believed that fiction worketh abomination and maketh a lie.”
—For the State of Rhode Island, U.S. public relief program (1935-1943)