JVM Internals
JVM Internals
Douglas Q. Hawkins
Bytecode
Garbage Collection
Optimizations
Compile Time
Run Time
7
3
7 +
3
3+ 7
10
Types of Collectors
Parallel - across multiple threads
Concurrent - while program runs
Eden
Survivor
Spaces
Old Generation
Tenured
Eden A B
Survivor
Spaces
Old Generation
Tenured
Eden A B C D
Survivor
Spaces
Old Generation
Tenured
Eden A B C D E F G
Survivor
Spaces
Old Generation
Tenured
Eden A B C D E F G
Survivor
Spaces
Old Generation
Tenured
Eden A C D G
Survivor
B E F
Spaces
Old Generation
Tenured
Eden
Survivor
B E F
Spaces
Old Generation
Tenured
Eden H I J K L M N
Survivor
B E F
Spaces
Old Generation
Tenured
Eden H I J K L M N
Survivor
B E F
Spaces
Old Generation
Tenured
Eden H I K L M N
Survivor
F B E J
Spaces
Old Generation
Tenured
Eden
Survivor
B E J
Spaces
Old Generation
Tenured
Eden
Survivor
Spaces
Old Generation
Tenured B E J
int tmp = a + b;
int x = tmp;
int y = tmp;
int sum = 0;
sum += 1;
...
sum += 9;
double dx = x1 - x2;
double dx = y1 - y2;
double distance = Math.sqrt( dx*dx + dy*dy );
Tony Printezis
http://java.sun.com/javase/6/docs/technotes/guides/vm/cms-6.html
http://java.sun.com/docs/hotspot/gc1.4.2/faq.html
http://www.fasterj.com/articles/G1.html
http://www.informit.com/guides/content.aspx?g=java&seqNum=27