java7 garbage collector g1
TRANSCRIPT
![Page 1: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/1.jpg)
Java 7 Garbage Collector G1Antons Kranga, 3rd May 2012
![Page 2: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/2.jpg)
Introduction to GC
![Page 3: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/3.jpg)
Copyright © 2012 Accenture All rights reserved. 3
Garbage Collector – reclaims unreachable
removes objects that you don’t need anymore
What is GC?
Picture is the © of Disney
![Page 4: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/4.jpg)
Copyright © 2012 Accenture All rights reserved. 4
• Java Code • Heap
How does it works?
![Page 5: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/5.jpg)
Copyright © 2012 Accenture All rights reserved. 5
• Java Code
Object x = new Object();
• Heap
How does it works?
x
# of ref= 1
![Page 6: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/6.jpg)
Copyright © 2012 Accenture All rights reserved. 6
• Java Code
Object x = new Object();
Object y = new Object();
• Heap
How does it works?
x
# of ref= 1
y
# of ref= 1
![Page 7: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/7.jpg)
Copyright © 2012 Accenture All rights reserved. 7
• Java Code
Object x = new Object();
Object y = new Object();
y = x;
• Heap
How does it works?
x
# of ref= 2
y
# of ref= 0
![Page 8: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/8.jpg)
Copyright © 2012 Accenture All rights reserved. 8
• Java Code
Object x = new Object();
Object y = new Object();
y = x;
• Heap
How does it works?
x
# of ref= 2
y
# of ref= 0
object y can be collected
![Page 9: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/9.jpg)
Copyright © 2012 Accenture All rights reserved. 9
• Java Code
Object x = new Object();
Object y = new Object();
y = x;
List z = new ArrayList();
z.add(x);
• Heap
How does it works?
x
# of ref= 3
y
# of ref= 0z
# of ref= 1
![Page 10: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/10.jpg)
Copyright © 2012 Accenture All rights reserved. 10
• Java Code
{
Object x = new Object();
Object y = new Object();
y = x;
List z = new ArrayList();
z.add(x);
}
• Heap
How does it works?
x
# of ref= 3
y
# of ref= 0z
# of ref= 1
![Page 11: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/11.jpg)
Copyright © 2012 Accenture All rights reserved. 11
• Java Code
{
Object x = new Object();
Object y = new Object();
y = x;
List z = new ArrayList();
z.add(x);
}
• Heap
How does it works?
x
# of ref= 3
y
# of ref= 0z
# of ref= 1objects in
island of isolation can be collected
![Page 12: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/12.jpg)
Copyright © 2012 Accenture All rights reserved. 12
• Garbage Collector is non deterministic
• GC carried by separate daemon threat
• Stop the World – pauses all threats during GC
What you need to know about GC
![Page 13: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/13.jpg)
Generational GCs
![Page 14: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/14.jpg)
Copyright © 2012 Accenture All rights reserved. 14
• Generations are of new or survived during GC objects
Generational GC
Picture taken from OpenFreak.com
![Page 15: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/15.jpg)
Copyright © 2012 Accenture All rights reserved. 15
• Generations are of new or survived during GC objects
• Heap divided in zones by age of the objects
Generational GC
Picture taken from OpenFreak.com
eden survivor tenured
![Page 16: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/16.jpg)
Copyright © 2012 Accenture All rights reserved. 16
• Generations are of new or survived during GC objects
• Heap divided in zones by age of the objects
Generational GC
Picture taken from OpenFreak.com
eden survivor
Objects experienced no
GC (age 0)
tenured
![Page 17: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/17.jpg)
Copyright © 2012 Accenture All rights reserved. 17
• Generations are of new or survived during GC objects
• Heap divided in zones by age of the objects
Generational GC
Picture taken from OpenFreak.com
eden survivor
experiences several GCs
(2 spaces by default)
tenured
![Page 18: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/18.jpg)
Copyright © 2012 Accenture All rights reserved. 18
• Generations are of new or survived during GC objects
• Heap divided in zones by age of the objects
Generational GC
Picture taken from OpenFreak.com
eden survivor
Objects survived multiple GCs
tenured
![Page 19: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/19.jpg)
Copyright © 2012 Accenture All rights reserved. 19
• Generations are of new or survived during GC objects
• Heap divided in zones by age of the objects
Generational GC
Picture taken from OpenFreak.com
eden survivor
young generation tenured generation
tenured
![Page 20: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/20.jpg)
Copyright © 2012 Accenture All rights reserved. 20
• Generations are of new or survived during GC objects
• Heap divided in zones by age of the objects
Generational GC
Picture taken from OpenFreak.com
eden survivor tenured
young generation tenured generation
objects collected byMinor and
Full GC
objects collected only byFull GC
![Page 21: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/21.jpg)
Copyright © 2012 Accenture All rights reserved. 21
Objects survival rate statistics
![Page 22: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/22.jpg)
Copyright © 2012 Accenture All rights reserved. 22
• Serial Collector – always stop-the-world
Types of generational GC in Java
![Page 23: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/23.jpg)
Copyright © 2012 Accenture All rights reserved. 23
• Throughput Collector – Concurrent for minor GC– Stop-the-world for major GC
Types of generational GC in Java
![Page 24: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/24.jpg)
Copyright © 2012 Accenture All rights reserved. 24
• Concurrent Low Pause Collector – – Tenured gen: application paused for short periods during
GC– Young gen: runs concurrently– the app. will have a large number of long-lived objects,
and there is a pause time constraint
Types of generational GC in Java
![Page 25: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/25.jpg)
Copyright © 2012 Accenture All rights reserved. 25
Primary Parameters
1. Throughput– percentage of the total run time not spent performing GC
2. Pauses– times when the application code stops running while GC is performed– number of pauses, their average duration and their maximum duration
Secondary Parameters:
3. Footprint– current heap size (amount of memory) being used
4. Promptness– how quickly memory from objects no longer needed is freed
GC Metrics
![Page 26: Java7 Garbage Collector G1](https://reader035.vdocuments.site/reader035/viewer/2022081515/554f3a15b4c90572088b4ea0/html5/thumbnails/26.jpg)
To be continued