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:
“To be an editor, as I was.
Then to lie here close by the river over the place
Where the sewage flows from the village,
And the empty cans and garbage are dumped,
And abortions are hidden.”
—Edgar Lee Masters (18691950)
“All urbanization, pushed beyond a certain point, automatically becomes suburbanization.... Every great city is just a collection of suburbs. Its inhabitants ... do not live in their city; they merely inhabit it.”
—Aldous Huxley (18941963)