Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage...
Transcript of Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage...
![Page 2: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/2.jpg)
Why?
![Page 3: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/3.jpg)
Leaky Abstraction
2 of 3 Optimization Flags Are For Memory Management
![Page 4: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/4.jpg)
but not about tuning per se
......
![Page 5: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/5.jpg)
HotSpot Collectors
Young
Old
-XX:+UseSerialGC
-XX:+UseParNewGC -XX:+UseParallelGC
-XX:+UseConcMarkSweepGC -XX:+UseParallelOldGC
Serial ParallelScavenge
Serial Old(Mark Compact)
Concurrent Mark & Sweep
ParallelOld
(Mark Compact)
Parallel
![Page 6: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/6.jpg)
TopicsBasic Garbage Collection Strategies & Terminology
Garbage Collection in HotSpot
Garbage Collection in J9 and JRockit
Alternatives to Garbage Collection
Azul C4
![Page 7: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/7.jpg)
Fundamentals
![Page 8: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/8.jpg)
Tasks for a Tracing GCIdentify Live ObjectsRemove Dead ObjectsOptionally, Coalesce Free Space (Compaction)
![Page 9: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/9.jpg)
Stack Frames
Mark & Sweep
Static VariablesSystem.in
System.out
![Page 10: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/10.jpg)
Mark Compact
![Page 11: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/11.jpg)
Allocation
4
8
![Page 12: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/12.jpg)
Copy Collector
![Page 13: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/13.jpg)
Copy Collector
![Page 14: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/14.jpg)
Tracing Problem
Random Walk of HeapCache Hostile
Bad Idea on Large Heap
![Page 15: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/15.jpg)
Generational HypothesisBy
tes
Surv
iving
Bytes Allocated
Infants
![Page 16: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/16.jpg)
GenerationalYoung
Old / Tenured
Stack Frames
Static VariablesSystem.in
System.out
![Page 17: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/17.jpg)
Remembered SetYoung
Old
Stack Frames
Static VariablesSystem.in
System.out
![Page 18: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/18.jpg)
Remembered SetYoung
Old
Stack Frames
Static VariablesSystem.in
System.out
![Page 19: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/19.jpg)
GC in Java VMs
![Page 20: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/20.jpg)
HotSpot Garbage CollectorYoung Generation
Old Generation
Eden
S1S0
![Page 21: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/21.jpg)
Young vs Tenured CollectionsBy
tes
Surv
iving
Bytes Allocated
Young Tenured
![Page 22: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/22.jpg)
Which Tracing Strategy?
Low(Young Region) Copy
High(Tenured Region)
Mark & SweepOR
Mark Compact
Liveness Strategy
![Page 23: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/23.jpg)
Object AllocationYoung Generation
Old Generation
Eden
S1S0
TLAB
![Page 24: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/24.jpg)
Minor CollectionYoung Generation
Old Generation
Eden
S1S0
TLAB
1 2
![Page 25: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/25.jpg)
Major CollectionYoung Generation
Old Generation
Eden
S1S0
![Page 26: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/26.jpg)
Permanent GenerationYoung Generation
Old Generation
Eden
S1S0
Permanent Generation
Bootstrap App Server Web Application
C C C C C C C C
![Page 27: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/27.jpg)
Demo
https://visualvm.dev.java.net/plugins.htmlhttps://visualvm.dev.java.net/
![Page 28: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/28.jpg)
Tuning
Newer JVMs can adaptively tune,but you may not want to rely on that.
Steady State
![Page 29: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/29.jpg)
Newer JVMs can automatically tune,but you may not want to rely on that.
-XX:MaxGCPauseMillis-XX:GCTimeRatio
Meets these goals by adjusting the heap size.
8x
Adaptive Tuning
![Page 30: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/30.jpg)
Maximize Collection during Minor GCsAvoid Major GCs at much as possible
Promote as little as possible
Maximize Available Memory
Adjust for 2 of 3 GC GoalsThroughput
LatencyFootprint
Basic Principles
![Page 31: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/31.jpg)
Stops region resizingwhich would require a full GC
Set Xms = Xmxinitial heap size max heap size
3-4xYoung (Xmn): 1-1.5x
Old: 2-3x
![Page 32: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/32.jpg)
Set XX:PermSize = XX:MaxPermSize
Again, stops region resizingwhich would require a full GC
1.2-1.5x
![Page 33: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/33.jpg)
GC ChoicesSerial ParallelVS.
Stop theWorld Concurrent
Compacting Non-compacting
VS.
Full VS. Incremental
![Page 34: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/34.jpg)
Application Thread GC Thread
ParallelSerial
Stop the World!
![Page 35: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/35.jpg)
Why Stop the World?
0x0C
0x0C
0x0C0x04
0x04
0x04
![Page 36: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/36.jpg)
Parallel MarkCompact
Application Thread GC Thread
ConcurrentMark & Sweep
Concurrent Marking
Remark
Concurrent Sweep
![Page 37: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/37.jpg)
HotSpot Collectors
Young
Old
-XX:+UseSerialGC
-XX:+UseParNewGC -XX:+UseParallelGC
-XX:+UseConcMarkSweepGC -XX:+UseParallelOldGC
Serial ParallelScavenge
Serial Old(Mark Compact)
Concurrent Mark & Sweep
ParallelOld
(Mark Compact)
Parallel
![Page 38: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/38.jpg)
Application Thread GC Thread
Throughput vs Latency
![Page 39: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/39.jpg)
If Latency is Too High,Switch to ConcMarkSweep
CMS kicks in when old generation is 65% full.
Increase Old Generation an additional 25-30%
When compaction is needed it is serial,so avoid compaction at all costs!
![Page 40: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/40.jpg)
GCs in Other JVMs
![Page 41: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/41.jpg)
J9Nursery
Tenured
SurvivorAllocate
C
![Page 42: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/42.jpg)
JRockitNursery
Tenured
Keep Area Survivor
C C
C
![Page 43: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/43.jpg)
Hybrid Mark Sweep & Copy
To From
![Page 44: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/44.jpg)
New GCs in Java VMs
![Page 45: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/45.jpg)
G1:Garbage First & Balanced
![Page 46: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/46.jpg)
G1 & Balanced GC
Unused Young Old
![Page 47: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/47.jpg)
G1 - Minor Collection
Unused Young Old
![Page 48: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/48.jpg)
Unused Young Old
G1 - Major Collection
![Page 49: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/49.jpg)
Azul C4Continuously Concurrent Compacting Collector
To From
![Page 50: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/50.jpg)
Alternatives to Hard References & GC
![Page 51: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/51.jpg)
WeakReference
WR
WeakReference<Foo> fooRef = new WeakReference<Foo>(foo);Foo foo = fooRef.get();
![Page 52: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/52.jpg)
SoftReference
SR
SoftReference<Foo> fooRef = new SoftReference<Foo>(foo);Foo foo = fooRef.get();
Garbage Collected if Low on Space
![Page 53: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/53.jpg)
Be Careful With ReferencesReference<User> ref = ...if ( ref.get() != null ) { System.out.println(ref.get().getName());}
Possible NullPointerException
Reference<User> ref = ...User user = ref.get();if ( user != null ) { System.out.println(user.getName());}
![Page 54: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/54.jpg)
ConcurrentMap<Key, Graph> graphs = new MapMaker() .concurrencyLevel(4) .weakKeys() .maximumSize(10000) .expireAfterWrite(10, TimeUnit.MINUTES) .makeComputingMap( new Function<Key, Graph>() { public Graph apply(Key key) { return createExpensiveGraph(key); } });
Guava MapMaker & CacheBuilder
![Page 55: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/55.jpg)
PhantomReference
ReferenceQueue
PR
X
![Page 56: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/56.jpg)
Direct ByteBuffersByteBuffer buffer = ByteBuffer.allocateDirect(...);
![Page 57: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/57.jpg)
Additional Reading
The Garbage Collection HandbookBy Richard Jones, Antony Hoskin, Eliot Moss
http://www.amazon.com/The-Garbage-Collection-Handbook-Management/
Memory Management in theHotSpot Java Virtual Machinehttp://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf
By Charlie Hunt and Binu John
Java Performance
http://www.amazon.com/Java-Performance-Charlie-Hunt/
http://www.infoq.com/presentations/JVM-Performance-Tuning-twitterBy Attila Szegedi
Everything I Ever Learned AboutJVM Performance Tuning
![Page 58: Understanding Garbage Collection - Meetupfiles.meetup.com/87071/Understanding Garbage Collection.pdfMaximize Collection during Minor GCs Avoid Major GCs at much as possible Promote](https://reader030.fdocuments.us/reader030/viewer/2022040614/5f0944017e708231d425ff62/html5/thumbnails/58.jpg)
Q&A