0% found this document useful (0 votes)
38 views

HTML5

The document discusses 7 types of garbage collectors in Java - Serial, Parallel, Concurrent Mark Sweep, Z GC, Garbage First (G1) GC, Shenandoah GC, and Epsilon GC. Each type is designed for different use cases based on their balance of latency, throughput, and memory footprint. The G1 GC is the default collector since Java 9, while Z GC and Shenandoah GC provide low-latency collection.

Uploaded by

Hadraoui Zakaria
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

HTML5

The document discusses 7 types of garbage collectors in Java - Serial, Parallel, Concurrent Mark Sweep, Z GC, Garbage First (G1) GC, Shenandoah GC, and Epsilon GC. Each type is designed for different use cases based on their balance of latency, throughput, and memory footprint. The G1 GC is the default collector since Java 9, while Z GC and Shenandoah GC provide low-latency collection.

Uploaded by

Hadraoui Zakaria
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

7 Types of Garbage

Collectors in Java

- An overview

1
Agenda
• About Garbage Collection
• Three metrics of GC
• GC Algorithms
– Serial GC
– Parallel GC
– Concurrent Mark Sweep GC
– Z GC
– Garbage First (G1) GC
– Shenandoah GC
– Epilson GC

By Amol Limaye:
2
https://www.linkedin.com/in/amolrlimaye/
About Garbage Collection
• Garbage collection is process of JVM where
unused objects are removed from the heap
memory.
• Various Java versions provide different
default and optional implementations of GCs
• Choice of a GC algorithm will depend on the
Java version and nature of Java application

By Amol Limaye:
3
https://www.linkedin.com/in/amolrlimaye/
Three Metrics of a GC algorithm
• Every garbage collection algorithm occupies a
part of this triangle based on where it is
targeted and what it is best at.

By Amol Limaye:
4
https://www.linkedin.com/in/amolrlimaye/
Three Metrics of a GC algorithm
• Latency:- Whether the GC operation induces
pauses and how long the GC pauses would be
• Throughput:- The amount of garbage
collection work the algo. performs per unit
time
• Footprint:- How much memory is needed by
the collector to manage GC

By Amol Limaye:
5
https://www.linkedin.com/in/amolrlimaye/
Serial Garbage Collector
• Uses single thread to perform GC
• Both Major and Minor GCs are done serially
• Low memory footprint
Use Cases
• Suitable for client machines and embedded
systems
• Suitable for multiprocessor machines when
dataset is small (less than 100MB)
• Not Suitable for Large datasets
By Amol Limaye:
6
https://www.linkedin.com/in/amolrlimaye/
Parallel Garbage Collector
• Default for JDK 8 and earlier
• Similar to Single Thread GC, except that it uses
multiple threads to speed-up the process
• High throughput
Use cases
• Intended for applications that use medium to
large size datasets and are run on
multiprocessor or multithreaded hardware
By Amol Limaye:
7
https://www.linkedin.com/in/amolrlimaye/
Concurrent Mark Sweep GC
• Deprecated in Java 9 and removed in Java 14
• Minimizes GC pause time
• Requires the application to share resources with
GC during concurrent phases
• Higher throughput, higher latency
Use cases
• Should be used for applications that require low
pause times and can share resources with GC
• Example - A Desktop UI application that respond
to events or a webserver responding to a request
By Amol Limaye:
8
https://www.linkedin.com/in/amolrlimaye/
Z Garbage Collector
• Introduced in Java 15 as stable, prod-ready version
• Scalable , low-latency GC
• Performs all expensive work concurrently without
stopping the work of application
• Intended for applications which require low latency
Use cases
• Applications that need large memory (big data)
• Applications that need reduced GC pause time (low
latency systems)

By Amol Limaye:
9
https://www.linkedin.com/in/amolrlimaye/
Garbage First or G1 Garbage Collector
• Default collector since Java 9
• Uses multiple threads to perform GC
• Achieves balance between throughput and
latency
• Very efficient with gigantic datasets
Use cases
• Trading platforms
• Interactive graphics programs

By Amol Limaye:
10
https://www.linkedin.com/in/amolrlimaye/
Shenandoah Garbage Collector
• Introduced in Java 12
• Low pause time garbage collector
• Focus on latency at cost of throughput
• GC Pause times are not proportional to heap size
– 200 GB or 2 GB heap should have similar pause
times
• Executes in concurrent threads to the application
threads
Use cases
• Applications needing low GC pause times
By Amol Limaye:
11
https://www.linkedin.com/in/amolrlimaye/
Epilson Garbage Collector
• Introduced in Java 11, still an experimental feature
• Only manages memory allocation but does not clean
objects – that is, it does no garbage collection. When
all the heap memory of application is used up, the
application will exit.
Use cases
• Short term running applications where allocated
memory size is largely sufficient
• If you’ve ever wondered how much of your program’s
performance is affected by garbage collection, Epsilon
is your solution to test the performance
• Other uses are discouraged
By Amol Limaye:
12
https://www.linkedin.com/in/amolrlimaye/
Further reading
• https://blogs.oracle.com/javamagazine/post/j
ava-garbage-collectors-evolution
• https://www.oracle.com/webfolder/technetw
ork/tutorials/obe/java/gc01/index.html#overv
iew
• https://blog.devgenius.io/from-java-9-to-java-
15-evolutions-and-new-features-part-2-
7405530ab748

By Amol Limaye:
13
https://www.linkedin.com/in/amolrlimaye/
Follow Me for more such content
• Follow Amol Limaye to more see such content
in your feed
https://www.linkedin.com/in/amolrlimaye/

By Amol Limaye:
14
https://www.linkedin.com/in/amolrlimaye/

You might also like