memory leak

A memory leak is characterized by an unintentionally increasing amount of memory usage.  Traditionally a memory leak occurs when memory is allocated and the reference is discarded before the memory is released. In a garbage collected environment this can never occur, since an instance is released as soon as all references to it has been removed. On the other hand, it is possible to unintentionally reference an instance by a long-term reference, by for instance adding an observer to a long-living instance and never removing it. The behavior of having unintentional long-term references to instances is similar to the traditional memory leak and will be referred to as a memory leak in this manual.