Transcript
Page 1: Unified Theory of Garbage Collection

A Unified Theory of Garbage Collection

David F. Bacon Perry Cheng V.T. Rajan

IBM Watson Research Center

Seminar Talk by Yoshimi Takano, ETH Zurich

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 1

Page 2: Unified Theory of Garbage Collection

“He who loves practice without theory is like the sailorwho boards ship without a rudder and compass andnever knows where he may cast.”

– Leonardo da Vinci

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 2

Page 3: Unified Theory of Garbage Collection

A Unified Theory of Garbage Collection

David F. Bacon Perry Cheng V.T. Rajan

IBM Watson Research Center

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 3

Page 4: Unified Theory of Garbage Collection

Summary

I Tracing and reference counting are duals

I All high-performance garbage collectors are hybrids oftracing and reference counting

I This taxonomy can be usedI To develop a uniform cost-modelI As an algorithm design frameworkI To generate collectors dynamically. . .

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 4

Page 5: Unified Theory of Garbage Collection

Outline

IntroductionGarbage CollectionMotivation

Duality of Tracing and Reference CountingQualitative ComparisonAbstract Garbage CollectionConvergence

Collection as Tracing and Reference CountingSingle HeapSplit Heap

Uniform Cost Model

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 5

Page 6: Unified Theory of Garbage Collection

Introduction Garbage Collection

Garbage Collection and Liveness (Recap)

I Automatic storage reclamation of unreachable objectsI Roots:

I GlobalsI Locals in stack frames

Roots

Live Dead

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 6

Page 7: Unified Theory of Garbage Collection

Introduction Motivation

Picking a Garbage Collector for your VM

I Lots and lots of garbage collector algorithms

State of the ArtI Implement n algorithmsI Measure and compare for m benchmarksI Use algorithm with best mean performance

ProblemsI Limited exploration of design space (“no compass”)I Static selection can sacrifice performance

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 7

[Slide from OOPSLA presentation]

Page 8: Unified Theory of Garbage Collection

Introduction Motivation

Picking a Garbage Collector for your VM

I Lots and lots of garbage collector algorithms

State of the ArtI Implement n algorithmsI Measure and compare for m benchmarksI Use algorithm with best mean performance

ProblemsI Limited exploration of design space (“no compass”)I Static selection can sacrifice performance

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 7

[Slide from OOPSLA presentation]

Page 9: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Qualitative Comparison

Two Fundamental Garbage Collection Techniques

Tracing [McCarthy, 1960]

I Stop the worldI Trace forward from rootsI Everything touched is live, all else is garbage

Reference Counting [Collins, 1960]

I Each object has count of incoming pointersI Adjust count in case of mutations (write barrier)I When counter reaches zero, object is garbage and count

of all children is decremented

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 8

Page 10: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Qualitative Comparison

Two Fundamental Garbage Collection Techniques

Tracing [McCarthy, 1960]

I Stop the worldI Trace forward from rootsI Everything touched is live, all else is garbage

Reference Counting [Collins, 1960]

I Each object has count of incoming pointersI Adjust count in case of mutations (write barrier)I When counter reaches zero, object is garbage and count

of all children is decremented

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 8

Page 11: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Qualitative Comparison

Diametrical Opposites?

Tracing Reference CountingCollection Style Batch IncrementalPause Times Long ShortReal Time? No YesDelayed Reclamation? Yes NoCost per Mutation None HighCollects Cycles? Yes No

1 1

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 9

[Table from paper]

Page 12: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Qualitative Comparison

How Different Really?

I Both types have been implemented by the authorsI Very different starting pointI But with optimizations, similarities increase:

I Both trace rootsI Both are semi-incrementalI Both have floating garbageI Both have write barriers

I Why?

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 10

Page 13: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Abstract Garbage Collection

Abstract Garbage Collection

DefinitionAn object graph is a triple G = (V, E, R) with

V the set of vertices (objects)E the multiset of directed edges (pointers)R the multiset of roots

Multiset notation: [a, b] ] [b] = [a, b, b]

DefinitionA function ρ : V → N0 is a reference count function for an objectgraph G = (V, E, R) iff

∀ x ∈ V : ρ(x) = |[(u, x) ∈ E : ρ(u) > 0]|+ 1x∈R

I “# in-edges from vertices with a non-zero RC (+1)”

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 11

Roots R

︸ ︷︷ ︸V

Page 14: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Abstract Garbage Collection

Abstract Garbage Collection

DefinitionAn object graph is a triple G = (V, E, R) with

V the set of vertices (objects)E the multiset of directed edges (pointers)R the multiset of roots

Multiset notation: [a, b] ] [b] = [a, b, b]

DefinitionA function ρ : V → N0 is a reference count function for an objectgraph G = (V, E, R) iff

∀ x ∈ V : ρ(x) = |[(u, x) ∈ E : ρ(u) > 0]|+ 1x∈R

I “# in-edges from vertices with a non-zero RC (+1)”

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 11

Roots R

︸ ︷︷ ︸V

Page 15: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Abstract Garbage Collection

Abstract Garbage Collection, cont’d

DefinitionA garbage collection algorithm takes an object graph G as inputand computes a reference count function ρ for G.

Objects x with ρ(x) = 0 are then reclaimed.

I Common abstract model, where any algorithm computesreference counts ρ

I For a given object graph, there can be many suchfunctions ρ, as will be seen later

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 12

Page 16: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Abstract Garbage Collection

Abstract Garbage Collection, cont’d

DefinitionA garbage collection algorithm takes an object graph G as inputand computes a reference count function ρ for G.

Objects x with ρ(x) = 0 are then reclaimed.

I Common abstract model, where any algorithm computesreference counts ρ

I For a given object graph, there can be many suchfunctions ρ, as will be seen later

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 12

Page 17: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Tracing Revisited

Let’s consider a version of tracing that computes referencecounts instead of simply setting mark bits:

initialize-for-tracing():W ← R

scan-by-tracing():while W 6= ∅

remove w from Wρ(w)← ρ(w) + 1if ρ(w) = 1

for each x ∈ children(w)W ← W ] [x] Roots

Live Dead

0

0

0

0

0

0

0

0

0

0

0

0

0

0

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 13

[Pseudo-code snippets from paper]

Page 18: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Tracing Revisited

Let’s consider a version of tracing that computes referencecounts instead of simply setting mark bits:

initialize-for-tracing():W ← R

scan-by-tracing():while W 6= ∅

remove w from Wρ(w)← ρ(w) + 1if ρ(w) = 1

for each x ∈ children(w)W ← W ] [x] Roots

Live Dead

0

0

0

0

0

0

0

0

0

0

0

0

0

0

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 13

[Pseudo-code snippets from paper]

Page 19: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Tracing Revisited

Let’s consider a version of tracing that computes referencecounts instead of simply setting mark bits:

initialize-for-tracing():W ← R

scan-by-tracing():while W 6= ∅

remove w from Wρ(w)← ρ(w) + 1if ρ(w) = 1

for each x ∈ children(w)W ← W ] [x] Roots

Live

Dead

2

2

1

1

4

1

0

0

0

0

0

0

0

0

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 13

[Pseudo-code snippets from paper]

Page 20: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Tracing Revisited

Let’s consider a version of tracing that computes referencecounts instead of simply setting mark bits:

initialize-for-tracing():W ← R

scan-by-tracing():while W 6= ∅

remove w from Wρ(w)← ρ(w) + 1if ρ(w) = 1

for each x ∈ children(w)W ← W ] [x] Roots

Live Dead

2

2

1

1

4

1

0

0

0

0

0

0

0

0

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 13

[Pseudo-code snippets from paper]

Page 21: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Reference Counting Revisited

Let’s consider a version of RC in which the decrementoperations are batched instead of performed immediately:

mutate(old, new):W ← W ] [old]ρ(new)← ρ(new) + 1

scan-by-counting():while W 6= ∅

remove w from Wρ(w)← ρ(w)− 1if ρ(w) = 0

for each x ∈ children(w)W ← W ] [x]

Anti-roots

Dead

Cyclic

1

2

1

3

4

2

2

1

1

1

2

1

1

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 14

Page 22: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Reference Counting Revisited

Let’s consider a version of RC in which the decrementoperations are batched instead of performed immediately:

mutate(old, new):W ← W ] [old]ρ(new)← ρ(new) + 1

scan-by-counting():while W 6= ∅

remove w from Wρ(w)← ρ(w)− 1if ρ(w) = 0

for each x ∈ children(w)W ← W ] [x]

Anti-roots

Dead

Cyclic

1

2

1

3

4

2

2

1

1

1

2

1

1

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 14

Page 23: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Reference Counting Revisited

Let’s consider a version of RC in which the decrementoperations are batched instead of performed immediately:

mutate(old, new):W ← W ] [old]ρ(new)← ρ(new) + 1

scan-by-counting():while W 6= ∅

remove w from Wρ(w)← ρ(w)− 1if ρ(w) = 0

for each x ∈ children(w)W ← W ] [x]

Anti-roots

Dead

Cyclic

2

2

1

3

4

2

2

1

1

1

2

1

2

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 14

Page 24: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Reference Counting Revisited

Let’s consider a version of RC in which the decrementoperations are batched instead of performed immediately:

mutate(old, new):W ← W ] [old]ρ(new)← ρ(new) + 1

scan-by-counting():while W 6= ∅

remove w from Wρ(w)← ρ(w)− 1if ρ(w) = 0

for each x ∈ children(w)W ← W ] [x]

Anti-roots

Dead

Cyclic

2

2

1

2

4

2

0

1

0

0

1

0

0

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 14

Page 25: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Reference Counting Revisited

Let’s consider a version of RC in which the decrementoperations are batched instead of performed immediately:

mutate(old, new):W ← W ] [old]ρ(new)← ρ(new) + 1

scan-by-counting():while W 6= ∅

remove w from Wρ(w)← ρ(w)− 1if ρ(w) = 0

for each x ∈ children(w)W ← W ] [x]

Anti-roots

Dead

Cyclic

2

2

1

2

4

2

0

1

0

0

1

0

0

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 14

Page 26: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Not So Different After All. . .

initialize-for-tracing():W ← R

scan-by-tracing():while W 6= ∅

remove w from Wρ(w)← ρ(w) + 1if ρ(w) = 1

for each x ∈ children(w)W ← W ] [x]

mutate(old, new):W ← W ] [old]ρ(new)← ρ(new) + 1

scan-by-counting():while W 6= ∅

remove w from Wρ(w)← ρ(w)− 1if ρ(w) = 0

for each x ∈ children(w)W ← W ] [x]

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 15

Page 27: Unified Theory of Garbage Collection

Duality of Tracing and Reference Counting Convergence

Duality

Tracing Reference CountingStarting Point Roots Anti-rootsGraph Traversal Fwd. from roots Fwd. from anti-rootsObjects Traversed Live DeadInitial RC Low (zero) HighRC Reconstruction Addition Subtraction

2

2

1

1

4

1

0

0

0

0

0

0

0

0

2

2

1

2

4

2

0

1

0

0

1

0

0

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 16

[Table from paper]

Page 28: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting

Tracing/Counting Hybrids

FundamentalsI Division of storage:

I Single heap (= 1)I Split heap (= 2)I Multi-heap (> 2)

I Assignment of either tracing or reference counting to thedifferent divisions

Trade-offsI Remaining choices are implementation details and

space-time trade-offs

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 17

Page 29: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting

Tracing/Counting Hybrids

FundamentalsI Division of storage:

I Single heap (= 1)I Split heap (= 2)I Multi-heap (> 2)

I Assignment of either tracing or reference counting to thedifferent divisions

Trade-offsI Remaining choices are implementation details and

space-time trade-offs

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 17

Page 30: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Single Heap Algorithms

I Root references vs. intra-heap references

Roots Heap

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 18

Page 31: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Single Heap Algorithms

I Root references vs. intra-heap references

Roots Heap

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 18

[Schematics from paper]

Page 32: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Algorithm 1: Tracing

I Both root and intra-heap references are traced

Roots Heap

T T

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 19

Page 33: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Algorithm 2: Reference Counting

I Both root and intra-heap references are counted

Roots Heap

C C

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 20

Page 34: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Algo. 3: Deferred Reference Counting [Deutsch/Bobrow, ’76]

I To avoid high mutation overhead root references are notcounted (i.e. write barrier ignores root pointers)

I Objects with reference count 0 are maintained in a zerocount table (ZCT)

I Root references are traced at collection time

mutate(old, new):if ¬is-root-pointer

. . .

Roots Heap

ZCT

T C

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 21

Page 35: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Algo. 3: Deferred Reference Counting [Deutsch/Bobrow, ’76]

I To avoid high mutation overhead root references are notcounted (i.e. write barrier ignores root pointers)

I Objects with reference count 0 are maintained in a zerocount table (ZCT)

I Root references are traced at collection time

mutate(old, new):if ¬is-root-pointer

. . .

Roots Heap

ZCT

T C

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 21

Page 36: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Algo. 3: Deferred Reference Counting [Deutsch/Bobrow, ’76]

I To avoid high mutation overhead root references are notcounted (i.e. write barrier ignores root pointers)

I Objects with reference count 0 are maintained in a zerocount table (ZCT)

I Root references are traced at collection time

mutate(old, new):if ¬is-root-pointer

. . .

Roots Heap

ZCT

T C

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 21

Page 37: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Single Heap

Single Heap Collector Family

T T

(Pure) Tracing[McCarthy, 1960]

C T

“Partial Tracing”

C C

(Pure) Reference Counting[Collins, 1960]

T C

Deferred Reference Counting[Deutsch/Bobrow, 1976]

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 22

Page 38: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Split Heap

Generational Garbage Collection [Ungar, 1984]

I Heap is split up in 2 regions: a nursery and a mature spaceI Collect nursery independentlyI Nursery objects pointed to by mature references are

maintained in a remembered set (RS) by a write barrier,i.e. reference counted

Roots Nursery

Mature

RS

T

T

T

TC

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 23

Page 39: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Split Heap

Generational Garbage Collection [Ungar, 1984]

I Heap is split up in 2 regions: a nursery and a mature spaceI Collect nursery independentlyI Nursery objects pointed to by mature references are

maintained in a remembered set (RS) by a write barrier,i.e. reference counted

Roots Nursery

Mature

RS

T

T

T

TC

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 23

Page 40: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Split Heap

Generational Garbage Collection [Ungar, 1984]

I Heap is split up in 2 regions: a nursery and a mature spaceI Collect nursery independentlyI Nursery objects pointed to by mature references are

maintained in a remembered set (RS) by a write barrier,i.e. reference counted

Roots Nursery

Mature

RS

T

T

T

TC

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 23

Page 41: Unified Theory of Garbage Collection

Collection as Tracing and Reference Counting Split Heap

Generational Traced-Root Collector Family

T

T

T

TC

Generational [Ungar, 1984]

T

T

C

CC

“Redundant Reference Counting”

T

T

T

CC

Ulterior Reference Counting[Blackburn/McKinley, 2003]

T

T

C

TC

“Inferior Reference Counting”

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 24

Page 42: Unified Theory of Garbage Collection

Uniform Cost Model

Enabling Quantitative Comparison

I Characterize object graph and programI Number of objectsI Allocation rateI Mutation rateI etc.

I Develop space/time cost formulas for each collectorI Don’t “cheat” by ignoring collector metadataI Coefficients ci for each parameter are left unspecifiedI See paper for details

I Simple example:time-per-collectionTracing = c1 |R|+c2 |Vlive|+c3 |Elive|+c4 |V|

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 25

Page 43: Unified Theory of Garbage Collection

Uniform Cost Model

Enabling Quantitative Comparison

I Characterize object graph and programI Number of objectsI Allocation rateI Mutation rateI etc.

I Develop space/time cost formulas for each collectorI Don’t “cheat” by ignoring collector metadataI Coefficients ci for each parameter are left unspecifiedI See paper for details

I Simple example:time-per-collectionTracing = c1 |R|+c2 |Vlive|+c3 |Elive|+c4 |V|

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 25

Page 44: Unified Theory of Garbage Collection

Conclusion Benefits

Conclusion

BenefitsI Deeper theoretical insight into garbage collection

I Design of collectors can be made more methodical

I May help enable dynamic construction of collectors tunedto particular applications

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 26

Page 45: Unified Theory of Garbage Collection

Conclusion Future Work/Outlook

Conclusion, cont’d

Future Work/OutlookI Refine (unrealistic) assumptions:

I Fixed-size objects (no fragmentation)I No concurrent collectorsI Application in steady state

I Take allocation cost and locality issues into accountI Measure coefficients for cost parameters

I Theory looks promising, but practical relevance still needsto emerge

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 27

Page 46: Unified Theory of Garbage Collection

“Theory without practice cannot survive and dies asquickly as it lives.”

– Leonardo da Vinci

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 28

Page 47: Unified Theory of Garbage Collection

Sources

Sources

David F. Bacon, Perry Cheng, V.T. RajanA Unified Theory of Garbage Collection(Paper and Presentation at OOPSLA 2004, Vancouver)

Paul R. WilsonUniprocessor Garbage Collection Techniques

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 29

Page 48: Unified Theory of Garbage Collection

Additional Material Fix-point Formulation

Fix-point Formulation

DefinitionA function ρ : V → N0 is a reference count function for an objectgraph G = (V, E, R) iff

∀ x ∈ V : ρ(x) = |[(u, x) ∈ E : ρ(u) > 0]|+ 1x∈R

I “# in-edges from vertices with a non-zero RC + const.”I ρ = λ x. |[(u, x) ∈ E : ρ(u) > 0]|+ 1x∈R︸ ︷︷ ︸

=: F(ρ)

=⇒ ρ is a fix-point

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 30

Roots R

︸ ︷︷ ︸V

Page 49: Unified Theory of Garbage Collection

Additional Material Partial Tracing

Algorithm 4: Partial Tracing

I New (inefficient?) algorithmI Only root references are countedI Intra-heap references are traced, starting from the

dynamically maintained root set R

mutate(old, new):if is-root-pointer

R← R ] [new]R← R− [old]

Roots Heap

C T

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 31

Page 50: Unified Theory of Garbage Collection

Additional Material Partial Tracing

Algorithm 4: Partial Tracing

I New (inefficient?) algorithmI Only root references are countedI Intra-heap references are traced, starting from the

dynamically maintained root set R

mutate(old, new):if is-root-pointer

R← R ] [new]R← R− [old]

Roots Heap

C T

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 31

Page 51: Unified Theory of Garbage Collection

Additional Material Partial Tracing

Algorithm 4: Partial Tracing

I New (inefficient?) algorithmI Only root references are countedI Intra-heap references are traced, starting from the

dynamically maintained root set R

mutate(old, new):if is-root-pointer

R← R ] [new]R← R− [old]

Roots Heap

C T

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 31

Page 52: Unified Theory of Garbage Collection

Additional Material Train Algorithm

Multi-Heap Collectors: Train Algorithm [Hudson/Moss, 1992]

Roots Train 1

Train 2

T T

T T

T

C

C

C

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 32

Page 53: Unified Theory of Garbage Collection

Additional Material Trade-Offs

Trade-Offs

I Using semi-spaces with a copying collector (linearspace-time trade-off: half the heap space vs. sweep time)

I Traversal (recursive or with pointer reversals?)I Memory compactionI Implementation of remembered sets

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 33

Page 54: Unified Theory of Garbage Collection

Additional Material Cycle Collection

Cycle CollectionBackup Tracing

I Occasionally perform a tracing collection

Trial DeletionI Wanted: vertex set S having no live external in-edgesI Candidate vertex x, S := x∗

I Subtract internal references and remove vertices withexternal count > 0

2

2

1

2

4

2

0

1

0

0

1

0

0

1

A Unified Theory of Garbage Collection (Bacon et al.) Seminar Talk by Yoshimi Takano 34


Top Related