Topic: memory management by garbage collection
Topic: memory management by working sets
| |
Summary
A common optimization for garbage collection is partitioning memory by age. Young objects have a shorter average lifespan than older objects. LRU and working set methods use age to identify memory that is no longer in use. (cbb 12/07)
Subtopic: arena allocation
Quote: use an arena to allocate objects with the same lifetime; release arena at end without explicit deallocations [»hansDR1_1990]
| Quote: in some applications, most memory deallocations occur at the same time, e.g., windows and compilers [»hansDR1_1990]
| Quote: arena allocation is 3/4's as fast as stack allocation, twice as fast as quick fit and 7 times faster than first fit [»hansDR1_1990, OK]
| Subtopic: working sets vs. CLOCK
Quote: even though working sets are better, most modern multiprogramming system use the CLOCK memory policy [»dennPJ9_1980]
| Subtopic: release-match
Quote: release-match storage allocation--allocate either at one end of memory, or adjacent to a block with a similar release time [»beckLL10_1982]
| Quote: release-match storage allocation is better than either first fit or best fit [»beckLL10_1982]
| Subtopic: age-match
Quote: age-match storage allocation--allocate either at one end of memory or adjacent to memory with a similar allocation time [»beckLL10_1982]
| Quote: age-match storage allocation is better than best-fit if the maximum request size is large relative to the memory available [»beckLL10_1982]
| Subtopic: LRU vs. databases
Quote: LRU does not always work for database buffer management; e.g., one-time sequential access, cyclic referencing, one-time random access [»stonM7_1981]
| Subtopic: generation scavenging
Quote: with generation scavenging in Smalltalk, have sub-second pause times, 3% overhead, use of virtual memory, and reclaimation of circular structures [»sampAD11_1986]
| Quote: generation scavenging: divide memory into old and new objects; new objects are garbage collected and memory resident; old objects are in virtual memory
| Quote: generation scavenging--a traversal of new space starting at the remembered set finds all live new objects [»ungarD5_1984]
| Quote: generation scavenging--if a new object survives enough scavenges, moved to old object area and no longer reclaimed
| Quote: generation scavenging has short pause times, works with virtual memory, reclaims circular structure, and is efficient [»ungarD5_1984]
| Quote: generation scavenging works poorly when objects die after a while; most deal with clumps in lifetime distributions [»ungaD1_1992]
| Quote: improve generation scavenging by segregating large bitmaps and strings and by demographic feedback [»ungaD1_1992]
| Subtopic: older-first
Quote: older-first garbage collection copies up to 10x less than generational collection; requires up to 10x more write barrier work [»stefD11_1999]
| Quote: waterfall problem of multigenerational collectors: older generations most collect younger generations [»abduSE9_1998]
|
Related Topics
Topic: memory management by garbage collection (116 items)
Topic: memory management by working sets (18 items)
|