CSc 520 - Principles of Programming Languages
10 : Memory Management -- GC -- Generational Collection

Christian Collberg

Department of Computer Science

University of Arizona

1 Generational Collection

2 Generational Collection...

3 Generational Collection...

Functional Language:
3#3

Object Oriented Language:
5#5

4 Generational Collection...

GenerationalCollection1

5 Generational Collection - After GC(1#1)

GenerationalCollection2

6 Generational Collection...


Remembering Back Pointers


7 Remembering Back Pointers

Remembered List
After each pointer update x.f := 9#9, the compiler adds code to insert x in a list of updated memory locations:
10#10

8 Remembering Back Pointers

Remembered Set
As above, but set a bit in the updated object so that it is inserted only once in the list:
11#11

9 Remembering Back Pointers...

Card marking

10 Remembering Back Pointers...

Page marking I

11 Remembering Back Pointers...

Page marking II


Cost of Garbage Collection


12 Cost of Garbage Collection

GCCost1

18#18

13 Cost of GC -- Generational Collection

GCCost-Generational


20#20

14 Cost of GC -- Generational Collection...

GCCost-Generational


20#20

15 Readings and References



Christian Collberg 2008-04-29