Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.

Ähnliche Präsentationen


Präsentation zum Thema: "Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist."—  Präsentation transkript:

1 Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist der Heap(-Teil) aufgebraucht, findet Garbage Collection statt und das Programm wird anschliessend im anderen Teil fortgesetzt

2 Die Idee hinter Copying Garbage Collection (2) Vertauschen der beiden Hälften (From-Space, To-Space) Kopieren der Objekte aus der root-set in den To-Space Scannen der Objekte im To-Space und ggf. Kopieren referenzierter Objekte bzw. Korrektur der Referenzen

3 Cheneys Copying Collector (1) Iterativer Algorithmus Verbindet Kopieren und Scannen Verwendet zwei Zeiger: scan / free Forwarding-Zeiger um Sharing zu garantieren The tricolour abstraction

4 Cheneys Copying Collector (2) Der Algorithmus:

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54 Allokation CPU-Kosten von stop-and-go Garbage Collection niedrig, da nur aktive Knoten besucht werden und das Kopieren von kleinen Objekten billig ist Überprüfen des Speichers im Semispace Inkrementieren des free Zeigers Rückgabe der neuen Adresse

55 Multiple-Area Collection Statische Bereiche (static area) Bereiche für grosse Objekte (large object area) Compacting Garbage Collection:

56 Effizienz R … Anzahl der erreichbaren Knoten c … Konstante (abhängig von der Zelle) M...Grösse eines Semi-Space s …Grösse einer Zelle g …CPU-Kosten pro Garbage Collection einer Zelle

57 Lokalität Falsche Strategie zerstört die Lokalität (z.B.: Cheneys breadth-first search) Richtige Heap-Grösse wählen Paging Unterstützung durch Betriebssystem

58 Umgruppierungsstrategien Depth-first vs Breadth-first Copying Stackless recursive copying collection Approximately depth-first copying Hierarchical decomposition Hash tables

59 Stackless recursive copying collection Grundeinheit der Heap Allokation ist ein frame of closures von variabler Länge Jedes closure enthält einen Code-Zeiger und einen Zeiger auf einen Heap-Rahmen Rekursiv, aber Rekursionsstack liegt in bereits besuchten From-Space closures

60 Approximately Depth-first Copying Es wird immer an der zuletzt teilweise gefüllten Seite im To- Space fortgesetzt Partial untersucht die Seite am Ende von To-Space (benutzt Breitensuche) Ist Partial fertig, wird übliche Breitensuche fortgesetzt und To- Space Objekte eingelesen

61 Hierarchical decomposition Ähnlich wie Approximately depth-first copying 4 Zeiger (2 Scan, 2 Free) Nur für Baumstrukturen empfehlenswert

62 Hash tables Traversieren vermeiden Lineare Liste globaler Variablen Objekte nach Entstehung geordnet Liste wird von Garbage Collection verwendet Collector erreicht Objekte in der Erzeugungsreihenfolge Gute Lokalität

63 Copying Collection – Ja oder Nein? Ja wenn Speicherverwaltung von Allokation dominiert wird Es viele kleine, kurzlebige Objekte gibt Die Verzögerung durch GC keine Rolle spielt Alternative: Hybrides System: ein Teil wird von einem Copying Collector behandelt, ein anderer Teil vom z.B. Mark-Sweep oder Mark-Compact Copying Garbage Collection bildet die Grundlage für andere Verfahren. Generationale und inkrementelle Garbage Collection bauen auf Copying auf.

64 Danke für Ihre Aufmerksamkeit! FRAGEN ?


Herunterladen ppt "Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist."

Ähnliche Präsentationen


Google-Anzeigen