Slide 1

Slide 1 text

Marco Molteni

Slide 2

Slide 2 text

3 7

Slide 3

Slide 3 text

Supported Experimental Deprecated (but included) G1 Z Shenandoah Epsilon Non- concurrent Concurrent No-ops Java 8 Serial Parallel Java 12 CMS 4 7

Slide 4

Slide 4 text

Supported Experimental Deprecated (but included) G1 Z Shenandoah Epsilon Non- concurrent Concurrent No-ops Java 8 Serial Parallel Java 12 CMS 4 3

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No collector satisfies every requirement Vertically scalable High throughput Low latency Low footprint

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

App Thread App Thread GC Thread Pause GC Thread App Thread App Thread App Thread Pause Pause

Slide 9

Slide 9 text

High Throughput Low footprint Scalable Low latency Non-Concurrent (Parallel, Serial) Concurrent (G1, Shenandoah, Z)

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Parallel GC App Thread GC Serial App Thread Serverless functions. Microdevices. Batch jobs.

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Parallel Serial G1 Z Shenandoah

Slide 14

Slide 14 text

Java 9 JEP 248: Make G1 the Default Garbage Collector

Slide 15

Slide 15 text

Ultra-short pauses (<10 ms). Scalable to TB of heap. Experimental.

Slide 16

Slide 16 text

Red Hat Oracle Lead Platforms Production ready Platform independent Linux only Java 8u, 11u only RedHat builds Experimental only

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Shenandoah G1 & Serial Parallel Z (Java 13) Allocated Heap Used Heap

Slide 19

Slide 19 text

Slide 20

Slide 20 text

No GC activities. Great for tests. Epsilon

Slide 21

Slide 21 text

Man kan ikke få både i pose og sekk Garbage Collectors = Tradeoff. The best collector is the one that works the well for YOUR application, not the one suggested in Stack Overflow / benchmarks.