SlideShare a Scribd company logo
Show Me the Garbage
Haim Yadid @ Next Insurance
@lifeyx
NEXT
7
Today
NEXT
8
Talk Focus
Mainstream applications HPC/ HFT/ Huge heaps
Web apps latency Low latency
Monitor and Tune no allocation
NEXT
9
Agenda
● Memory Management Terminology
● GC Building Blocks
● Current OpenJDK GCs
● Monitoring GC and Memory
● Analysis of common problems
NEXT
Let’s talk
memory
10
NEXT
Heap
Thread
Stacks
Static
11
Memory (Data)
NEXT
Allocator - Memory Allocation mechanism
Collector - memory reclamation mechanism
12
Participants
Mutator
NEXT
Allocator - Memory Allocation mechanism
Mutators - the application threads
Collectors - the GC threads
14
Participants
NEXT
● new / malloc () to create object
● delete() / free() release an object
15
malloc / free
NEXT
● Dangling pointers / Double free
● Memory leaks
● Crashes
● Security Vulnerabilities
● Fragmentation
● Performance Degradation
16
I don’t miss it
NEXT
17
Automatic Reference Counting (ARC)
NEXT
1 1
Heap
2
1
1
1 0
Non Heap
18
Automatic Reference Counting (ARC)
NEXT
1 1
Heap
2
1
1
1 1
19
Automatic Reference Counting - Cycles
NEXT
Concurrency - Every change to reference requires a memory barrier
Very bad for highly concurrent systems Mostly relevant for single threaded
20
Reference Counting Concurrency
NEXT
The (Tracing) Garbage Collector
21
NEXT
22
NEXT
The 3 KPIs
(key performance indicators)
23
NEXT
CPU/Time Overhead
The amount of time the GC consumes / requires
○ Wall clock time
○ CPU time
24
NEXT
Memory Overhead
The amount of memory the GC requires
○ Internal Data structures
○ Headroom
25
NEXT
Latency (Pauses)
What is the probability that the GC will affect your
transaction time and for how long
26
NEXT
Terminology
(Heap)
27
NEXT
Heap
Static &
Stack
28
To Heap or not to Heap
NEXT
Heap
29
Root Set
NEXT
Heap
Stack
30
Live Set (Reachable objects)
NEXT
Heap
Stack
31
Garbage (Unreachable Objects)
NEXT
Heap
Stack
32
Garbage (Unreachable Objects)
NEXT
Heap
Stack
33
Garbage (Unreachable Objects)
NEXT
Heap
Stack
34
Free List
NEXT
Building Blocks
&
Algorithms
35
NEXT
Heap
36
Root Scanning & Safe Points
Work: O(#threads & stack frames)
NEXT
Heap
Work: O(#Objects in LiveSet)
Stack
37
Marking (a.k.a. tracing)
NEXT
Sweep through the heap and collect all unmarked objects
Maintain a list of free memory portions
Work: O(#Objects and
fragments in Heap)
Heap
Unreachable
Reachable
Free
38
Mark & Sweep : Sweep
NEXT
39
Sweep: Fragmentation
NEXT
Moving objects to make bigger free contiguous spaces
Heap Heap
Work:
O( Size of Liveset in Heap)
40
Mark Compact
NEXT
41
Moving object around
● fix incoming references
● Stop application ?
● Read and write memory barriers
○ Brook pointer (shenandoah)
○ colored pointers (zgc, C4)
NEXT
Move all live objects to another space
From Space To Space
Work: O(Size of live set)
Memory: x2
42
Copy collector
NEXT
43
Thread Local Bump allocation
NEXT
Weak Generational Hypothesis - Most object die young
The surviving ones tend to live for a long time
44
Generational collectors
NEXT
Old
Non
Heap
From To
45
New/ Old Generation
there are also survivor spaces (I know)
NEXT
Higher throughput
Shorter new generation collection
46
Generational collectors
NEXT
Heap
Non
Heap
47
Regional
NEXT
Single Threaded
Stop the World Concurrent
Parallel
VS
VS
Monolithic Incremental
VS
48
Collectors Attributes
NEXT
49
STW Collectors - Serial (single threaded) - Monolithic
(Non incremental)
stop the world
Application
Threads
GC
Thread
NEXT
50
STW Collectors - Incremental
NEXT
51
STW Collectors - Parallel
Application
Threads
GC
Threads
NEXT
52
Concurrent Collectors - (single threaded)
NEXT
53
Concurrent Collectors -Parallel
NEXT
Let’s Talk about Mostly
54
NEXT
When do we want to collect Garbage?
55
NEXT
56
NEXT
57
The Open JDK GCs - Serial
Property Serial
-XX:+UseSerialGC
Compacting
Regional
Generational
Concurrent
Mostly Concurrent
When To Use Small Heaps
Single cpu
containers
(*) can be found as part of Corretto JDK
NEXT
58
The Open JDK GCs - Parallel
Property Serial
-XX:+UseSerialGC
Parallel
-XX:+UseParallelGC
Compacting
Regional
Generational
Concurrent
Mostly Concurrent
When To Use Small Heaps
Single cpu
containers
High throughput
Latency of a
single response is
not important
(*) can be found as part of Corretto JDK
NEXT
59
The Open JDK GCs - G1GC
Property Serial
-XX:+UseSerialGC
Parallel
-XX:+UseParallelGC
G1
-XX:+UseG1GC
Compacting
Regional
Generational
Concurrent <200ms
Mostly Concurrent Old gen only
When To Use Small Heaps
Single cpu
containers
High throughput
Latency of a
single response is
not important
Mainstream
applications
(*) can be found as part of Corretto JDK
NEXT
60
The Open JDK GCs - ZGC
Property Serial
-XX:+UseSerialGC
Parallel
-XX:+UseParallelGC
G1
-XX:+UseG1GC
ZGC
-XX:+UseG1GC
Compacting
Regional
Generational WIP
Concurrent <200ms <1ms
Mostly Concurrent Old gen only
When To Use Small Heaps
Single cpu
containers
High throughput
Latency of a
single response is
not important
Mainstream
applications
Large Heaps
Highly
responsive
(*) can be found as part of Corretto JDK
NEXT
61
The Open JDK GCs - Shenandoah
Property Serial
-XX:+UseSerialGC
Parallel
-XX:+UseParallelGC
G1
-XX:+UseG1GC
ZGC
-XX:+UseG1GC
Shenandoah(*)
-XX:+UseShenandoahGC
Compacting
Regional
Generational WIP WIP
Concurrent <200ms <1ms <1ms
Mostly Concurrent Old gen only
When To Use Small Heaps
Single cpu
containers
High throughput
Latency of a
single response is
not important
Mainstream
applications
Large Heaps
Highly
responsive
Large Heaps
Highly responsive
(*) can be found as part of Corretto JDK
NEXT
62
Azul’s C4
Property C4
Compacting
Regional
Generational
Concurrent
Mostly
Concurrent
When To Use Large
Heaps
low latency
NEXT
63
Let’s go practical
Dall-e: practical engineer picasso style
NEXT
Monitoring
64
NEXT
● CPU/Time overhead
● Memory Overhead
● Latency and Pauses
65
So what should we monitor ?
NEXT
-Xlog:gc=info:
file=<file_name>:
time,uptime,level,tags:
filecount=5,filesize=20m
66
GC Logs
Output file
decorators
Output Options
Tag
NEXT
67
GC Logs
[2022-09-01T17:30:40.433+0000][0.004s][info][gc] Using G1
[2022-09-01T17:30:41.975+0000][1.546s][info][gc] GC(0) Pause Young (Concurrent Start) (Metadata GC
Threshold) 126M->30M(4096M) 12.598ms
[2022-09-01T17:30:41.975+0000][1.546s][info][gc] GC(1) Concurrent Mark Cycle
[2022-09-01T17:30:41.988+0000][1.558s][info][gc] GC(1) Pause Remark 32M->22M(4096M) 2.119ms
[2022-09-01T17:30:41.988+0000][1.558s][info][gc] GC(1) Pause Cleanup 22M->22M(4096M) 0.003ms
[2022-09-01T17:30:42.052+0000][1.622s][info][gc] GC(1) Concurrent Mark Cycle 76.584ms
[2022-09-01T17:30:42.824+0000][2.395s][info][gc] GC(2) Pause Young (Concurrent Start) (Metadata GC
NEXT
68
GC Logs - Description
[2022-09-01T17:32:31.262+0000][110.832s][info][gc] GC(15) Pause Young (Normal) (G1 Evacuation Pause)
486M->130M(4096M) 93.914ms
NEXT
69
GC Logs - Time Stamp (when)
[2022-09-01T17:32:31.262+0000][110.832s]
[info][gc] GC(15) Pause Young (Normal) (G1 Evacuation Pause)
486M->130M(4096M) 93.914ms
NEXT
70
GC Logs - Memory released (how much)
[2022-09-01T17:32:31.262+0000][110.832s]
[info][gc] GC(15) Pause Young (Normal) (G1 Evacuation Pause)
486M->130M(4096M) 93.914ms
NEXT
71
GC Logs - Memory released (how long )
[2022-09-01T17:32:31.262+0000][110.832s]
[info][gc] GC(15) Pause Young (Normal) (G1 Evacuation Pause)
486M->130M(4096M) 93.914ms
NEXT
72
GC Logs
[2022-09-01T17:32:31.262+0000][110.832s][info][gc] GC(15) Pause Young (Normal) (G1 Evacuation Pause) 486M->130M(4096M) 93.914ms
[2022-09-01T17:33:48.974+0000][188.545s][info][gc] GC(16) Pause Young (Normal) (G1 Evacuation Pause) 1240M->169M(4096M) 26.671ms
.
.
.
Start and End Time
Freed memory
Overhead
Frequency
Allocation Rate
Pause Time
NEXT
73
GC Logs - GC Viewer
NEXT
74
GC Logs - GC Viewer
NEXT
75
GC Logs - GC Viewer
NEXT
76
GCEasy.io
NEXT
77
GCEasy.io
NEXT
● MBeans
● Mission Control
78
JMX (Java.lang.GarbageCollector)
NEXT
79
Visual GC
* does not support ZGC and Shenandoah
NEXT
● Wake Up every x ms
● measure amount time passed
● https://github.com/giltene/jHiccup
80
Latency - Hiccup Probe (inspired by jHiccup)
T T+x + p
{
Sleep X ms
NEXT
● GC logs and - System.gc()
● Histogram of live set : jmap -histo:live <PID>
● Grab a Heap dump (or at least a heap histogram)
81
Estimate Live Set
NEXT
● Long lasting memory ( maybe slowly changing)
● Service with large state will benefit from generational GC
● If State is bigger than old gen …. very bad
82
Live set - Long lasting - state
NEXT
● The (maximal/average) amount of memory needed to serve
a request
83
Live set - Working memory
NEXT
Common
Problems
84
NEXT
85
https://github.com/lifey/gcKryptonites
Pause Detector
every 10ms detects (10& 100ms)
State Holder
Holds 2GB of smalls object (100m)
Brutal Allocator
Allocates 500 MB/s
2X
NEXT
86
Some Results
NEXT
87
Some Results
G1
Shenandoah
ZGC
NEXT
88
Some Results(2 min execution 4GB heap)
G1 Shenandoah zGC Parallel
# 10ms pause 27 3 10 107
# 100 ms pause 0 1 4 9
Average runtime
of iteration
302ms 794ms 352ms 434ms
LiveSet 2GB 2GB 2.5GB 2GB
NEXT
● Is it over > 5%
● Improve by :
○ Increase heap size
○ Use Generational Garbage collector
89
Excess GC (Temporal) Overhead
NEXT
● What can you tolerate ?
● Move to a concurrent
● Upgrade to the newest JVM
● Use Zing JVM
90
Latency
NEXT
● Use Generational Garbage collector
● Trade throughput
91
Excess GC (Memory) Overhead
NEXT
● Compacting GC should not have fragmentation
● What about humongous objects ?
● G1 handles it poorly
● ZGC Does better
92
Fragmentation
NEXT
● long term state should fit in old gen
● short term memory should not spill to old gen
93
Generational GC anomalies
New Generation Old Generation
Application State
NEXT
94
Your Service Questionnaire:
Question Value
Heap size the process is using (-Xmx)
GC overhead over an hour of peak time
Max Pause Time over a 24 hour period
Number of collections above GC pause time targets
Live set size (MB)
Allocation Rate
NEXT
95
Additional Reading

More Related Content

Similar to “Show Me the Garbage!”, Garbage Collection a Friend or a Foe

Sheepdog Status Report
Sheepdog Status ReportSheepdog Status Report
Sheepdog Status Report
Liu Yuan
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
Linaro
 
Garbage First and You!
Garbage First and You!Garbage First and You!
Garbage First and You!
devObjective
 
Garbage First & You
Garbage First & YouGarbage First & You
Garbage First & You
ColdFusionConference
 
Garbage First and you
Garbage First and youGarbage First and you
Garbage First and you
Kai Koenig
 
Choosing Right Garbage Collector to Increase Efficiency of Java Memory Usage
Choosing Right Garbage Collector to Increase Efficiency of Java Memory UsageChoosing Right Garbage Collector to Increase Efficiency of Java Memory Usage
Choosing Right Garbage Collector to Increase Efficiency of Java Memory Usage
Jelastic Multi-Cloud PaaS
 
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
Chester Chen
 
Jvm problem diagnostics
Jvm problem diagnosticsJvm problem diagnostics
Jvm problem diagnostics
Danijel Mitar
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
codebits
 
G1 collector and tuning and Cassandra
G1 collector and tuning and CassandraG1 collector and tuning and Cassandra
G1 collector and tuning and Cassandra
Chris Lohfink
 
Experiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRCExperiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRC
Ganesan Narayanasamy
 
Scalable Matrix Multiplication for the 16 Core Epiphany Co-Processor
Scalable Matrix Multiplication for the 16 Core Epiphany Co-ProcessorScalable Matrix Multiplication for the 16 Core Epiphany Co-Processor
Scalable Matrix Multiplication for the 16 Core Epiphany Co-Processor
Lou Loizides
 
Term Project Presentation (4)
Term Project Presentation (4)Term Project Presentation (4)
Term Project Presentation (4)
Louis Loizides PE
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket Cache
Nicolas Poggi
 
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Akihiro Hayashi
 
GIST AI-X Computing Cluster
GIST AI-X Computing ClusterGIST AI-X Computing Cluster
GIST AI-X Computing Cluster
Jax Jargalsaikhan
 
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumOpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
takuyayamamoto1800
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
Ceph Community
 
Ceph Day Netherlands - Ceph @ BIT
Ceph Day Netherlands - Ceph @ BIT Ceph Day Netherlands - Ceph @ BIT
Ceph Day Netherlands - Ceph @ BIT
Ceph Community
 
µCLinux on Pluto 6 Project presentation
µCLinux on Pluto 6 Project presentationµCLinux on Pluto 6 Project presentation
µCLinux on Pluto 6 Project presentation
edlangley
 

Similar to “Show Me the Garbage!”, Garbage Collection a Friend or a Foe (20)

Sheepdog Status Report
Sheepdog Status ReportSheepdog Status Report
Sheepdog Status Report
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
 
Garbage First and You!
Garbage First and You!Garbage First and You!
Garbage First and You!
 
Garbage First & You
Garbage First & YouGarbage First & You
Garbage First & You
 
Garbage First and you
Garbage First and youGarbage First and you
Garbage First and you
 
Choosing Right Garbage Collector to Increase Efficiency of Java Memory Usage
Choosing Right Garbage Collector to Increase Efficiency of Java Memory UsageChoosing Right Garbage Collector to Increase Efficiency of Java Memory Usage
Choosing Right Garbage Collector to Increase Efficiency of Java Memory Usage
 
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
 
Jvm problem diagnostics
Jvm problem diagnosticsJvm problem diagnostics
Jvm problem diagnostics
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
 
G1 collector and tuning and Cassandra
G1 collector and tuning and CassandraG1 collector and tuning and Cassandra
G1 collector and tuning and Cassandra
 
Experiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRCExperiences with Power 9 at A*STAR CRC
Experiences with Power 9 at A*STAR CRC
 
Scalable Matrix Multiplication for the 16 Core Epiphany Co-Processor
Scalable Matrix Multiplication for the 16 Core Epiphany Co-ProcessorScalable Matrix Multiplication for the 16 Core Epiphany Co-Processor
Scalable Matrix Multiplication for the 16 Core Epiphany Co-Processor
 
Term Project Presentation (4)
Term Project Presentation (4)Term Project Presentation (4)
Term Project Presentation (4)
 
Accelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket CacheAccelerating HBase with NVMe and Bucket Cache
Accelerating HBase with NVMe and Bucket Cache
 
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
 
GIST AI-X Computing Cluster
GIST AI-X Computing ClusterGIST AI-X Computing Cluster
GIST AI-X Computing Cluster
 
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumOpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
 
Ceph Day Netherlands - Ceph @ BIT
Ceph Day Netherlands - Ceph @ BIT Ceph Day Netherlands - Ceph @ BIT
Ceph Day Netherlands - Ceph @ BIT
 
µCLinux on Pluto 6 Project presentation
µCLinux on Pluto 6 Project presentationµCLinux on Pluto 6 Project presentation
µCLinux on Pluto 6 Project presentation
 

More from Haim Yadid

Loom me up Scotty! Project Loom - What's in it for Me?
Loom me up Scotty!  Project Loom - What's in it for Me?Loom me up Scotty!  Project Loom - What's in it for Me?
Loom me up Scotty! Project Loom - What's in it for Me?
Haim Yadid
 
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyKotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Haim Yadid
 
“Show Me the Garbage!”, Understanding Garbage Collection
“Show Me the Garbage!”, Understanding Garbage Collection“Show Me the Garbage!”, Understanding Garbage Collection
“Show Me the Garbage!”, Understanding Garbage Collection
Haim Yadid
 
Java Memory Structure
Java Memory Structure Java Memory Structure
Java Memory Structure
Haim Yadid
 
Basic JVM Troubleshooting With Jmx
Basic JVM Troubleshooting With JmxBasic JVM Troubleshooting With Jmx
Basic JVM Troubleshooting With Jmx
Haim Yadid
 
The Freelancer Journey
The Freelancer JourneyThe Freelancer Journey
The Freelancer Journey
Haim Yadid
 
Building microservices with Kotlin
Building microservices with KotlinBuilding microservices with Kotlin
Building microservices with Kotlin
Haim Yadid
 
Taking Kotlin to production, Seriously
Taking Kotlin to production, SeriouslyTaking Kotlin to production, Seriously
Taking Kotlin to production, Seriously
Haim Yadid
 
Let's talk about Garbage Collection
Let's talk about Garbage CollectionLet's talk about Garbage Collection
Let's talk about Garbage Collection
Haim Yadid
 
JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...
JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...
JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...
Haim Yadid
 
mjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profilingmjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profiling
Haim Yadid
 
Java 8 Launch - MetaSpaces
Java 8 Launch - MetaSpacesJava 8 Launch - MetaSpaces
Java 8 Launch - MetaSpaces
Haim Yadid
 
Java 8 - Stamped Lock
Java 8 - Stamped LockJava 8 - Stamped Lock
Java 8 - Stamped Lock
Haim Yadid
 
The Future of Futures - A Talk About Java 8 CompletableFutures
The Future of Futures - A Talk About Java 8 CompletableFuturesThe Future of Futures - A Talk About Java 8 CompletableFutures
The Future of Futures - A Talk About Java 8 CompletableFutures
Haim Yadid
 
Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014
Haim Yadid
 
A short Intro. to Java Mission Control
A short Intro. to Java Mission ControlA short Intro. to Java Mission Control
A short Intro. to Java Mission Control
Haim Yadid
 
Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions
Haim Yadid
 
Tales About Scala Performance
Tales About Scala PerformanceTales About Scala Performance
Tales About Scala Performance
Haim Yadid
 
Israeli JUG - IL JUG presentation
Israeli JUG -  IL JUG presentation Israeli JUG -  IL JUG presentation
Israeli JUG - IL JUG presentation
Haim Yadid
 

More from Haim Yadid (19)

Loom me up Scotty! Project Loom - What's in it for Me?
Loom me up Scotty!  Project Loom - What's in it for Me?Loom me up Scotty!  Project Loom - What's in it for Me?
Loom me up Scotty! Project Loom - What's in it for Me?
 
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the UglyKotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
Kotlin Backend Development 6 Yrs Recap. The Good, the Bad and the Ugly
 
“Show Me the Garbage!”, Understanding Garbage Collection
“Show Me the Garbage!”, Understanding Garbage Collection“Show Me the Garbage!”, Understanding Garbage Collection
“Show Me the Garbage!”, Understanding Garbage Collection
 
Java Memory Structure
Java Memory Structure Java Memory Structure
Java Memory Structure
 
Basic JVM Troubleshooting With Jmx
Basic JVM Troubleshooting With JmxBasic JVM Troubleshooting With Jmx
Basic JVM Troubleshooting With Jmx
 
The Freelancer Journey
The Freelancer JourneyThe Freelancer Journey
The Freelancer Journey
 
Building microservices with Kotlin
Building microservices with KotlinBuilding microservices with Kotlin
Building microservices with Kotlin
 
Taking Kotlin to production, Seriously
Taking Kotlin to production, SeriouslyTaking Kotlin to production, Seriously
Taking Kotlin to production, Seriously
 
Let's talk about Garbage Collection
Let's talk about Garbage CollectionLet's talk about Garbage Collection
Let's talk about Garbage Collection
 
JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...
JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...
JVM Garbage Collection logs, you do not want to ignore them! - Reversim Summi...
 
mjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profilingmjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profiling
 
Java 8 Launch - MetaSpaces
Java 8 Launch - MetaSpacesJava 8 Launch - MetaSpaces
Java 8 Launch - MetaSpaces
 
Java 8 - Stamped Lock
Java 8 - Stamped LockJava 8 - Stamped Lock
Java 8 - Stamped Lock
 
The Future of Futures - A Talk About Java 8 CompletableFutures
The Future of Futures - A Talk About Java 8 CompletableFuturesThe Future of Futures - A Talk About Java 8 CompletableFutures
The Future of Futures - A Talk About Java 8 CompletableFutures
 
Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014
 
A short Intro. to Java Mission Control
A short Intro. to Java Mission ControlA short Intro. to Java Mission Control
A short Intro. to Java Mission Control
 
Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions
 
Tales About Scala Performance
Tales About Scala PerformanceTales About Scala Performance
Tales About Scala Performance
 
Israeli JUG - IL JUG presentation
Israeli JUG -  IL JUG presentation Israeli JUG -  IL JUG presentation
Israeli JUG - IL JUG presentation
 

Recently uploaded

How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
kalichargn70th171
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
OnePlan Solutions
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Luigi Fugaro
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 

Recently uploaded (20)

How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 

“Show Me the Garbage!”, Garbage Collection a Friend or a Foe