SlideShare a Scribd company logo
Continuous
Performance Testing
Mark Price / @epickrram
Performance Engineer
Improbable.io
InfoQ.com: News & Community Site
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
cd-performance-testing
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon London
www.qconlondon.com
The ideal
System performance testing as a
first-class citizen of the continuous
delivery pipeline
Process
Process maturity
A scientific and rigorous survey
Process maturity
A scientific and rigorous survey
Process maturity
“As part of QA, the whole team logs on
to the system to make sure it scales”
Process maturity
“We have some hand-rolled
benchmarks that prove our code is fast”
Process maturity
“We use a well-known testing
framework for our benchmarks”
Process maturity
“Our benchmarks are run
as part of CI”
Process maturity
“Trend visualisations of system
performance are available”
Process maturity
“There is a release gate on
performance regression”
Increasing process maturity
Implies:
Higher maintenance cost
Greater confidence
Scopes
Performance test scopes
● Nanobenchmarks
● Microbenchmarks
● Component Benchmarks
● System performance tests
Nanobenchmarks
● Determine the cost of something in the underlying
platform or runtime
● How long does it take to retrieve System.nanoTime()?
● What is the overhead of retrieving AtomicLong vs long?
● Invocation times on the order of 10s of nanoseconds
Nanobenchmarks
● Susceptible to jitter in the runtime/OS
● Unlikely to need to regression test these...
● Unless called very frequently from your code
Message callback
@Benchmark
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.SECONDS)
public void singleCallback(final Blackhole blackhole)
{
callback.accept(blackhole);
}
@Benchmark
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.SECONDS)
public void singleElementIterationCallback(final Blackhole blackhole)
{
for (Consumer<Blackhole> objectConsumer : callbackList)
{
objectConsumer.accept(blackhole);
}
}
Message callback
Microbenchmarks
● Test small, critical pieces of infrastructure or logic
● E.g message parsing, calculation logic
● These should be regression tests
● We own the code, so assume that we’re going to break it
● Same principle as unit & acceptance tests
Microbenchmarks
● Invaluable for use in optimising your code (if it is a
bottleneck)
● Still susceptible to jitter in the runtime
● Execution times in the order of 100s of nanos/single-digit
micros
● Beware bloat
Risk analysis - long vs double
BigDecimal
long
double
Component benchmarks
● ‘Service’ or ‘component’ level benchmarks
● Whatever unit of value makes sense in the codebase
● Wire together a number of components on the critical path
● We can start to observe the behaviour of the JIT compiler
(i.e. inlining)
Component benchmarks
● Execution times in the 10s - 100s of microseconds
● Useful for reasoning about maximum system performance
● Runtime jitter less of an issue, as things like GC/de-opts
might start to enter the picture
● Candidate for regression testing
Matching Engine - no-ops are fast!
System performance tests
● Last line of defence against regressions
● Will catch host OS configuration changes
● Costly, requires hardware that mirrors production
● Useful for experimentation
● System recovery after failure
● Tools developed for monitoring here should make it to
production
System performance tests
● Potentially the longest cycle-time
● Can provide an overview of infrastructure costs (e.g
network latency)
● Red-line tests (at what point will the system fail
catastrophically)
● Understand of interaction with host OS more important
● Regressions should be visible
Page fault stalls
Performance testing trade-offs
Nanobenchmarks
Microbenchmarks
Component Benchmarks
System Tests
● Slower
feedback
● Hardware
cost
● Maintenance
cost
● KPI/SLA
indicator
● Realism
● Faster
feedback
● System jitter
magnified
● Fewer moving
parts
● Stability
Measurement
System jitter is a thing
Reducing runtime jitter
Histogram of invocation times (via JMH)
Run-to-run variation
Large error values around average
Reducing runtime jitter
Measurement apparatus
Use a proven test-harness
If you can’t:
Understand coordinated omission
Measure out-of-band
Look for load-generator back-pressure
Production-grade tooling
Monitoring and tooling used in your
performance environment should be
productionised
Containers and the cloud
Measure the baseline of system jitter
Network throughput & latency: understand what is an artifact
of our system and what is the infrastructure
End-to-end testing is more important here since there are
many more factors at play adding to latency long-tail
Reporting
Charting
“Let’s chart our benchmark results so
we’ll see if there are regressions”
Charting
Charting
Charting
Charting
Make a computer do the analysis
We automated manual testing, we should automate
regression analysis
Then we can selectively display charts
Explain the screen in one sentence, or break it down
Improvement
Virtuous cycle
Measure
Model
ExecuteMeasure
Compare
Virtuous cycle
Measure
Model
ExecuteMeasure
Compare
PRODUCTION
PERF ENV
Virtuous cycle
Measure
Model
ExecuteMeasure
Compare
Use the same
tooling
Track
divergence
Regression tests
If we find a performance issue, try to add a test
that demonstrates the problem
This helps in the investigation phase, and
ensures regressions do not occur
Be careful with assertions
In a nutshell...
Key points
Use a known-good framework if possible
If you have to roll your own: peer review, measure it,
understand it
Data volume can be oppressive, use or develop tooling to
understand results
Test with realistic data/load distribution
Key points
Are we confident that our performance
testing will catch regressions before they
make it to production?
Thank you!
● @epickrram
● https://epickrram.blogspot.com
● recruitment@improbable.io
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
cd-performance-testing

More Related Content

PDF
How fpgas work when they don't
PPTX
Værktøjer udviklet på AAU til analyse af SCJ programmer
PDF
Process modelling at BaneDanmark
ODP
BAXTER phase 1b
PDF
SWEET - A Tool for WCET Flow Analysis - Björn Lisper
PDF
Tools and Methods for Continuously Expanding Software Applications
PPTX
Stress driven development
PDF
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
How fpgas work when they don't
Værktøjer udviklet på AAU til analyse af SCJ programmer
Process modelling at BaneDanmark
BAXTER phase 1b
SWEET - A Tool for WCET Flow Analysis - Björn Lisper
Tools and Methods for Continuously Expanding Software Applications
Stress driven development
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)

What's hot (16)

PPTX
Spyglass dft
PDF
Gatehouse software genanvendelse
PPTX
Tech trends 2018 2019
PDF
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PDF
BKK16-111 Tunables: The Future of Platform Optimization Selection in glibc
PPTX
Scan insertion
PPTX
Advances in Verification - Workshop at BMS College of Engineering
PDF
Ncerc rlmca202 adm m3 ssm
PPS
JedaOverview
PPTX
Tech talk network - friend or foe
PPTX
Qtp training session I
PPT
Conway Case Study - Optimizing Application Integration SDLC
PDF
Introduction to Apache Apex - CoDS 2016
PPT
Copy of qtp presentation
PPT
Automated Regression Testing for Embedded Systems in Action
Spyglass dft
Gatehouse software genanvendelse
Tech trends 2018 2019
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
BKK16-111 Tunables: The Future of Platform Optimization Selection in glibc
Scan insertion
Advances in Verification - Workshop at BMS College of Engineering
Ncerc rlmca202 adm m3 ssm
JedaOverview
Tech talk network - friend or foe
Qtp training session I
Conway Case Study - Optimizing Application Integration SDLC
Introduction to Apache Apex - CoDS 2016
Copy of qtp presentation
Automated Regression Testing for Embedded Systems in Action
Ad

Similar to Continuous Performance Testing (20)

PDF
Continuous Performance Testing
PDF
Performance Tuning Oracle Weblogic Server 12c
PDF
TechTalk_Cloud Performance Testing_0.6
PDF
PAC 2019 virtual Bruno Audoux
PDF
Performance Testing Java Applications
PPTX
Performance eng prakash.sahu
PDF
Defects mining in exchanges - medvedev, klimakov, yamkovi
PDF
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
PPTX
Copy of Silk performer - KT.pptx
PDF
Fundamentals Performance Testing
PDF
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
PDF
Tools. Techniques. Trouble?
PPTX
Manoj kolhe - Continuous Integration Testing
PPT
Fuzzing101 - webinar on Fuzzing Performance
PPTX
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
PPT
computer architecture.
PPT
The art of system and solution testing
PDF
Three Perspectives on Measuring Latency
PDF
Production profiling what, why and how technical audience (3)
PDF
Raghu nambiar:industry standard benchmarks
Continuous Performance Testing
Performance Tuning Oracle Weblogic Server 12c
TechTalk_Cloud Performance Testing_0.6
PAC 2019 virtual Bruno Audoux
Performance Testing Java Applications
Performance eng prakash.sahu
Defects mining in exchanges - medvedev, klimakov, yamkovi
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Copy of Silk performer - KT.pptx
Fundamentals Performance Testing
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Tools. Techniques. Trouble?
Manoj kolhe - Continuous Integration Testing
Fuzzing101 - webinar on Fuzzing Performance
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
computer architecture.
The art of system and solution testing
Three Perspectives on Measuring Latency
Production profiling what, why and how technical audience (3)
Raghu nambiar:industry standard benchmarks
Ad

More from C4Media (20)

PDF
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
PDF
Next Generation Client APIs in Envoy Mobile
PDF
Software Teams and Teamwork Trends Report Q1 2020
PDF
Understand the Trade-offs Using Compilers for Java Applications
PDF
Kafka Needs No Keeper
PDF
High Performing Teams Act Like Owners
PDF
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
PDF
Service Meshes- The Ultimate Guide
PDF
Shifting Left with Cloud Native CI/CD
PDF
CI/CD for Machine Learning
PDF
Fault Tolerance at Speed
PDF
Architectures That Scale Deep - Regaining Control in Deep Systems
PDF
ML in the Browser: Interactive Experiences with Tensorflow.js
PDF
Build Your Own WebAssembly Compiler
PDF
User & Device Identity for Microservices @ Netflix Scale
PDF
Scaling Patterns for Netflix's Edge
PDF
Make Your Electron App Feel at Home Everywhere
PDF
The Talk You've Been Await-ing For
PDF
Future of Data Engineering
PDF
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Next Generation Client APIs in Envoy Mobile
Software Teams and Teamwork Trends Report Q1 2020
Understand the Trade-offs Using Compilers for Java Applications
Kafka Needs No Keeper
High Performing Teams Act Like Owners
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Service Meshes- The Ultimate Guide
Shifting Left with Cloud Native CI/CD
CI/CD for Machine Learning
Fault Tolerance at Speed
Architectures That Scale Deep - Regaining Control in Deep Systems
ML in the Browser: Interactive Experiences with Tensorflow.js
Build Your Own WebAssembly Compiler
User & Device Identity for Microservices @ Netflix Scale
Scaling Patterns for Netflix's Edge
Make Your Electron App Feel at Home Everywhere
The Talk You've Been Await-ing For
Future of Data Engineering
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
cuic standard and advanced reporting.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
Mobile App Security Testing_ A Comprehensive Guide.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Monthly Chronicles - July 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
cuic standard and advanced reporting.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm

Continuous Performance Testing