SlideShare une entreprise Scribd logo
1  sur  99
By:
Monica Beckwith
Code Karam LLC
2
About Me …
Java/JVM/GC performance person
Current Life:
Consultant who solves Managed Runtime performance issues
Past Life:
Worked with Oracle, Sun, AMD…
- Was the Performance Lead for G1 GC
www.codekaram.com
https://www.linkedin.com/in/monicabeckwith
Tweet @mon_beck
©2016 CodeKaram
The Facts
• Performance Engineering
• JVM
• GC
• Throughput and Latency Design Considerations
• Generational GC
3
©2016 CodeKaram
The Algorithm
• Allocations
• Thread Local Allocation Buffers (TLABs)
• Reclamation
• Young Collection
• Old Collection
• Parallel and Serial Mark-Compact
• Mostly Concurrent Mark-Sweep
4
©2016 CodeKaram
Tuning
• Memory Leaks
• Tuning Recommendations
• Tuning for Throughput
• Tuning for Latency
5
©2016 CodeKaram
Extras
• Garbage First Garbage Collector
6
7
Performance Engineering
©2016 CodeKaram8
Performance
Engineering
Performance
Requirements & Test
Plan Development
Performance
Analysis
9
Performance Requirements
©2016 CodeKaram10
Performance
Requirements/
SLAs
Throughput?
Response
times?
Capacity
Management?
Footprint?
Availability?
11
Performance Analysis
©2016 CodeKaram12
Performance
Analysis
Monitoring
System
Under Test
Utilization,
Lock Stats,
…
Application,
System,
Memory,
…
Profiling
Analyzing
logs
13
JVM Performance Engineering
©2016 CodeKaram14
Java Application
Java
APIs
Java VM
OS + HardwareJRE
Runtime
JIT Compiler
GC
Class loader
©2016 CodeKaram15
Study,
Analyze,
TuneJIT
Compiler +
Runtime
Java
Development
Kit
Garbage
Collector/
Collection
Java APIs
16
Garbage Collection
Performance Engineering
©2016 CodeKaram17
GC
Performance
Engineering
JVM
Monitoring
Application
Profiling Process &
Plot GC
logs
Online &
Offline GC
Monitoring
Heap
Profiling
18
OpenJDK HotSpot GC - Facts!
©2016 CodeKaram
Throughput and latency are the two main
drivers towards refinement of GC
algorithms.
19
GC Fact #1
©2016 CodeKaram
The Throughput Maximizer
20
Maximize
Throughput
Generational
Old
Parallel Work
Young
Concurrent
Threads
Stop-the-
world
Threads
©2016 CodeKaram
Mr. Latency Sensitive
21
Latency Sensitive
Pause only when
needed
Concurrent
Marking/Sweeping
Reduce stop-the-
world GC pause
time
No/Partial
Compaction
21
©2016 CodeKaram22
Throughput
Maximizer
Parallel GC
©2016 CodeKaram23
Latency
Sensitive
CMS GC
©2016 CodeKaram24
Throughput
Maximizer
Latency
Sensitive
Parallel GC
CMS GC
G1 GC
©2016 CodeKaram
All GCs in OpenJDK HotSpot are
generational.
25
GC Fact #2
©2016 CodeKaram26
Young
Generation
Old
Generation
Eden Survivors
27
OpenJDK HotSpot GC -
Algorithms!
28
Garbage Collection -
Allocation.
©2016 CodeKaram29
Eden
Allocations
Survivors
Young Generation
30
Fast Path Allocation ==
Lock-Free Allocation ==
Threads Allocate Into Their
Local Allocation Buffer (LAB)s
©2016 CodeKaram31
Eden
TLAB TLAB TLAB TLAB TLAB
TLAB = Thread Local Allocation Buffer
©2016 CodeKaram32
EdenThread 1
Thread 2
Thread 3
Thread 4
TLAB TLAB TLAB TLAB TLAB
Thread 0
©2016 CodeKaram33
Eden
Allocations
Survivors
Young Generation
S0 S1
©2016 CodeKaram34
Eden
Allocations
Survivors
Young Generation
S0 S1
35
Garbage Collection -
Reclamation.
©2016 CodeKaram36
Young Generation Old Generation
Eden S0 S1
©2016 CodeKaram37
*Similar GC
Algorithms for
OpenJDK HotSpot
Different GC Algorithms
for OpenJDK Hotspot
Always collected in its entirety
Young Generation Old Generation
©2016 CodeKaram38
Always collected in its entirety
Young Generation Old Generation
*Similar GC
Algorithms for
OpenJDK HotSpot
Different GC Algorithms
for OpenJDK Hotspot
39
Young Garbage Collection ==
Reclamation Via Scavenging
©2016 CodeKaram40
Old Generation
Root Set
Young Generation
©2016 CodeKaram41
SurvivorEden
Young Generation
©2016 CodeKaram42
SurvivorEden
Young Generation
©2016 CodeKaram43
SurvivorEden
Young Generation
44
Old Garbage Collection ==
Different GC Algorithms
©2016 CodeKaram
The Throughput Collector
Multi-Threaded
Multi-Threaded - Entire
Heap Marked, Swept and
Compacted in its entirety
Always collected in its entirety
45
Young Generation Old Generation
©2016 CodeKaram46
Multi-Threaded
Multi-Threaded - Entire
Heap Marked, Swept and
Compacted in its entirety
Always collected in its entirety
Young Generation Old Generation
©2016 CodeKaram47
Old Generation
Root Set
Young Generation
Garbage Collection -Reclamation
via Parallel Mark-Compact
©2016 CodeKaram
Garbage Collection -Reclamation
via Parallel Mark-Compact
48
Old Generation
©2016 CodeKaram49
Garbage Collection -Reclamation
via Parallel Mark-Compact
Old Generation
©2016 CodeKaram50
Garbage Collection -Reclamation
via Parallel Mark-Compact
Old Generation
source region
destination
region
©2016 CodeKaram51
Garbage Collection -Reclamation
via Parallel Mark-Compact
Old Generation
source region
destination
region
©2016 CodeKaram52
Garbage Collection -Reclamation
via Parallel Mark-Compact
Old Generation
source region
destination
region
source region
©2016 CodeKaram53
Garbage Collection -Reclamation
via Parallel Mark-Compact
Old Generation
source region
destination
region
source region
©2016 CodeKaram54
Garbage Collection -Reclamation
via Parallel Mark-Compact
Old Generation
©2016 CodeKaram
The CMS Collector
Multi-Threaded
Multi-Threaded - Mostly
Concurrent Marked and
Swept in its entirety
Always collected in its entirety
55
Young Generation Old Generation
©2016 CodeKaram
The CMS Collector
Multi-Threaded
Multi-Threaded - Mostly
Concurrent Marked and
Swept in its entirety
Always collected in its entirety
56
??
Young Generation Old Generation
©2016 CodeKaram
The CMS Collector
Multi-Threaded
Multi-Threaded - Mostly
Concurrent Marked and
Swept in its entirety
Always collected in its entirety
57
No Compaction!!
Young Generation Old Generation
©2016 CodeKaram
Garbage Collection -
Reclamation via Mark-Sweep
58
Old Generation
Free
List
©2016 CodeKaram
Garbage Collection -
Reclamation via Mark-Sweep
59
Old Generation
Free
List
©2016 CodeKaram
All non/partial compacting GCs in
OpenJDK HotSpot fallback* to a fully
compacting stop-the-world garbage
collection called the “full” GC.
*Tuning can help avoid or postpone full GCs in many
cases.
60
©2016 CodeKaram
Single Threaded - Entire
Heap Marked, Swept and
Compacted in its entirety
61
Young Generation Old Generation
Garbage Collection -Reclamation
via Mark-Sweep-Compact
©2016 CodeKaram
Single Threaded - Entire
Heap Marked, Swept and
Compacted in its entirety
62
Young Generation Old Generation
Garbage Collection -Reclamation
via Mark-Sweep-Compact
63
OpenJDK HotSpot GC - Tuning!
©2016 CodeKaram
• GC can NOT eliminate your memory
leaks!
• GC (and heap dump) can provide
an insight into your application.
64
About Memory Leaks
©2016 CodeKaram
Java and Memory Leak
65
• Automatic Memory Management
• Allocation - mostly lock-free out of TLABs
• Reclamation - after tracing live data tree
referenced from the root set.
• How can there be a leak? …. hint above :)
©2016 CodeKaram
Java and Memory Leak
66
• GC root
• class loaded by class loader
• static fields
• threads
• JNI local and global
©2016 CodeKaram
Java and Memory Leak
67
• class loader leaks
• mutable static fields
• ThreadLocal leaks
• JNI memory leaks
©2016 CodeKaram
Java and Memory Leak
68
• Tools
• GC log files
• Heap dump
• Heap profiling
Live objects
retention
information
©2016 CodeKaram
Java and Memory Leak
69
• Tools
• -XX:+PrintGCDetails -XX:
+PrintGCTimeStamps -
Xloggc:filename; parse; plot
• jvisualVM; jconsole; Java Mission Control
©2016 CodeKaram70
Total Occupied Heap
Old generation
Young generation
Live Data Set
©2016 CodeKaram
71
©2016 CodeKaram
72
73
Tuning GC For Throughput Or
For Latency??
74
GC Elapsed Time Or GC
Overhead
©2016 CodeKaram
GC Elapsed Time indicated the amount of time it
takes to execute stop the world GC events
The higher the GC elapsed time - the lower the
application responsiveness due to the GC
induced latencies
75
©2016 CodeKaram
Overhead is an indication of the frequency of
stop the world GC events.
The more frequent the GC events - The more
likely it is to negatively impact application
throughput
76
77
What’s The #1 Contributor To A
GC Elapsed Time?
Copying Costs!
78
79
What Are The ContributorS To
GC Overhead?
80
Allocation Rate and
Promotion Rate
©2016 CodeKaram
• Size generations keeping your application’s object
longevity and size in mind.
• The faster the generation gets “filled”; the sooner a GC
is triggered.
• Size your generations and age your objects appropriately.
• The higher the amount of live data to be copied, the
longer the GC pause.
• Premature promotions are a big problem!
81
Tuning Recommendations
©2016 CodeKaram
Plot Allocation & Promotion
Rates
82
©2016 CodeKaram83
Young Occupancy before GC Young Gen Size Old Gen Occupancy after GC
Heap Occupancy before GC Heap Occupancy after GC Heap Size
Timestamps
84
Time Check!!
85
What About Garbage First GC?
©2016 CodeKaram
Traditional Java Heap
86
Contiguous Java Heap
Eden S0 S1
Old
Generation
©2016 CodeKaram
Heap Regions
87
Contiguous Java Heap
Free
Region
Non-Free
Region
©2016 CodeKaram
The Garbage First Collector
- Regionalized Heap
Eden
Old Old
Eden
Old
Survivor
Humongous
88
©2016 CodeKaram
The Garbage First Collector
Eden
Old Old
Eden
Old
Surv
ivor
E.g.: Current heap configuration -
89
©2016 CodeKaram
The Garbage First Collector
Eden
Old Old
Eden
Old
Surv
ivor
E.g.: During a young collection -
90
©2016 CodeKaram
The Garbage First Collector
Old Old
Old
E.g.: After a young collection -
Sur
viv
or
Ol
d
91
©2016 CodeKaram
Old Old
Old
Sur
viv
or
Ol
d
Eden Eden
Old
The Garbage First Collector
92
E.g.: Current heap configuration -
©2016 CodeKaram
Old Old
Old
E.g.: Reclamation of a garbage-filled region
during the cleanup phase -
Sur
viv
or
Ol
d
Eden Eden
Old
The Garbage First Collector
93
©2016 CodeKaram
Old Old
Old
E.g.: Reclamation of a garbage-filled region
during the cleanup phase -
Sur
viv
or
Ol
d
Eden Eden
The Garbage First Collector
94
©2016 CodeKaram
Old Old
Old
E.g.: Current heap configuration -
Sur
viv
or
Ol
d
Eden Eden
The Garbage First Collector
95
©2016 CodeKaram
Old Old
Old
E.g.: During a mixed collection -
Sur
viv
or
Ol
d
Eden Eden
The Garbage First Collector
96
©2016 CodeKaram
Old
E.g.: After a mixed collection -
O
l
d
Sur
vivo
r
Old
The Garbage First Collector
97
©2016 CodeKaram
The Garbage First Collector
- Pause Histogram
98
Pausetimeinmilliseconds
0
30
60
90
120
Timestamps
3415 3416.3 3417.2 3418.4 3419 3422 3423.4 3432.2 3433.2 3436.8 3437.6 3438.9 3440
Young Collection Initial Mark Remark Cleanup Mixed Collection
Initiating Heap Occupancy Percent
©2016 CodeKaram
Questions?
99
hotspot-gc-use@openjdk.java.net
hotspot-gc-dev@openjdk.java.net
monica@codekaram.com
www.codekaram.com

Contenu connexe

Tendances

Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4
YanpingWang
 

Tendances (20)

Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
 
G1 collector and tuning and Cassandra
G1 collector and tuning and CassandraG1 collector and tuning and Cassandra
G1 collector and tuning and Cassandra
 
Java Garbage Collectors – Moving to Java7 Garbage First (G1) Collector
Java Garbage Collectors – Moving to Java7 Garbage First (G1) CollectorJava Garbage Collectors – Moving to Java7 Garbage First (G1) Collector
Java Garbage Collectors – Moving to Java7 Garbage First (G1) Collector
 
JFokus Java 9 contended locking performance
JFokus Java 9 contended locking performanceJFokus Java 9 contended locking performance
JFokus Java 9 contended locking performance
 
-XX:+UseG1GC
-XX:+UseG1GC-XX:+UseG1GC
-XX:+UseG1GC
 
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORSOPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
 
G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?
 
Moving to g1 gc by Kirk Pepperdine.
Moving to g1 gc by Kirk Pepperdine.Moving to g1 gc by Kirk Pepperdine.
Moving to g1 gc by Kirk Pepperdine.
 
Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4
 
G1GC
G1GCG1GC
G1GC
 
Storing Cassandra Metrics
Storing Cassandra MetricsStoring Cassandra Metrics
Storing Cassandra Metrics
 
Tuning Java for Big Data
Tuning Java for Big DataTuning Java for Big Data
Tuning Java for Big Data
 
Garbage First and you
Garbage First and youGarbage First and you
Garbage First and you
 
HotSpot JVM Tuning
HotSpot JVM TuningHotSpot JVM Tuning
HotSpot JVM Tuning
 
Trouble with memory
Trouble with memoryTrouble with memory
Trouble with memory
 
Tuning the g1gc
Tuning the g1gcTuning the g1gc
Tuning the g1gc
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVM
 
JVM @ Taobao - QCon Hangzhou 2011
JVM @ Taobao - QCon Hangzhou 2011JVM @ Taobao - QCon Hangzhou 2011
JVM @ Taobao - QCon Hangzhou 2011
 
Garbage First & You
Garbage First & YouGarbage First & You
Garbage First & You
 

En vedette

JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013
Vladimir Ivanov
 
JavaOne 2012 - JVM JIT for Dummies
JavaOne 2012 - JVM JIT for DummiesJavaOne 2012 - JVM JIT for Dummies
JavaOne 2012 - JVM JIT for Dummies
Charles Nutter
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
Bhojan Rajan
 

En vedette (11)

Java Performance Engineer's Survival Guide
Java Performance Engineer's Survival GuideJava Performance Engineer's Survival Guide
Java Performance Engineer's Survival Guide
 
Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!
 
JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013JVM JIT-compiler overview @ JavaOne Moscow 2013
JVM JIT-compiler overview @ JavaOne Moscow 2013
 
Performance tesing coding standards & best practice guidelines v1
Performance tesing coding standards & best practice guidelines v1Performance tesing coding standards & best practice guidelines v1
Performance tesing coding standards & best practice guidelines v1
 
Performance testing and reporting with JMeter
Performance testing and reporting with JMeterPerformance testing and reporting with JMeter
Performance testing and reporting with JMeter
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
SAP Performance Testing Best Practice Guide v1.0
SAP Performance Testing Best Practice Guide v1.0SAP Performance Testing Best Practice Guide v1.0
SAP Performance Testing Best Practice Guide v1.0
 
JavaOne 2012 - JVM JIT for Dummies
JavaOne 2012 - JVM JIT for DummiesJavaOne 2012 - JVM JIT for Dummies
JavaOne 2012 - JVM JIT for Dummies
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migration
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 

Similaire à The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - The Facts, The Algorithm & Tuning.

Similaire à The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - The Facts, The Algorithm & Tuning. (20)

淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展
 
Are your v8 garbage collection logs speaking to you?Joyee Cheung -Alibaba Clo...
Are your v8 garbage collection logs speaking to you?Joyee Cheung -Alibaba Clo...Are your v8 garbage collection logs speaking to you?Joyee Cheung -Alibaba Clo...
Are your v8 garbage collection logs speaking to you?Joyee Cheung -Alibaba Clo...
 
Jvm problem diagnostics
Jvm problem diagnosticsJvm problem diagnostics
Jvm problem diagnostics
 
Taming Java Garbage Collector
Taming Java Garbage CollectorTaming Java Garbage Collector
Taming Java Garbage Collector
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
 
JVM Magic
JVM MagicJVM Magic
JVM Magic
 
AdGear Use Case with Scylla - 1M Queries Per Second with Single-Digit Millise...
AdGear Use Case with Scylla - 1M Queries Per Second with Single-Digit Millise...AdGear Use Case with Scylla - 1M Queries Per Second with Single-Digit Millise...
AdGear Use Case with Scylla - 1M Queries Per Second with Single-Digit Millise...
 
Tuning Java GC to resolve performance issues
Tuning Java GC to resolve performance issuesTuning Java GC to resolve performance issues
Tuning Java GC to resolve performance issues
 
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
 
JVM memory management & Diagnostics
JVM memory management & DiagnosticsJVM memory management & Diagnostics
JVM memory management & Diagnostics
 
Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8
 
H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...
H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...
H-Hypermap - Heatmap Analytics at Scale: Presented by David Smiley, D W Smile...
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Kernel Recipes 2018 - Zinc: minimal lightweight crypto API - Jason Donenfeld
Kernel Recipes 2018 - Zinc: minimal lightweight crypto API - Jason DonenfeldKernel Recipes 2018 - Zinc: minimal lightweight crypto API - Jason Donenfeld
Kernel Recipes 2018 - Zinc: minimal lightweight crypto API - Jason Donenfeld
 
Troubleshooting Memory Problems in Java Applications
Troubleshooting Memory Problems in Java ApplicationsTroubleshooting Memory Problems in Java Applications
Troubleshooting Memory Problems in Java Applications
 
Scala & Spark(1.6) in Performance Aspect for Scala Taiwan
Scala & Spark(1.6) in Performance Aspect for Scala TaiwanScala & Spark(1.6) in Performance Aspect for Scala Taiwan
Scala & Spark(1.6) in Performance Aspect for Scala Taiwan
 
ZGC-SnowOne.pdf
ZGC-SnowOne.pdfZGC-SnowOne.pdf
ZGC-SnowOne.pdf
 
millions-gc-jax-2022.pptx
millions-gc-jax-2022.pptxmillions-gc-jax-2022.pptx
millions-gc-jax-2022.pptx
 
High Performance Object Pascal Code on Servers (at EKON 22)
High Performance Object Pascal Code on Servers (at EKON 22)High Performance Object Pascal Code on Servers (at EKON 22)
High Performance Object Pascal Code on Servers (at EKON 22)
 

Plus de Monica Beckwith

Plus de Monica Beckwith (7)

The ilities of software engineering.pptx
The ilities of software engineering.pptxThe ilities of software engineering.pptx
The ilities of software engineering.pptx
 
A G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptxA G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptx
 
QCon London.pdf
QCon London.pdfQCon London.pdf
QCon London.pdf
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!
 
Applying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBBApplying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBB
 
Intro to Garbage Collection
Intro to Garbage CollectionIntro to Garbage Collection
Intro to Garbage Collection
 
OpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsOpenJDK Concurrent Collectors
OpenJDK Concurrent Collectors
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - The Facts, The Algorithm & Tuning.