Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Microbenchmarking with JMH - Portland 2023-03-14
Search
sullis
March 14, 2023
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Microbenchmarking with JMH - Portland 2023-03-14
Microbenchmarking with JMH
Portland Java User Group
March 14, 2023
Portland Oregon
sullis
March 14, 2023
More Decks by sullis
See All by sullis
Dependency Management for Java - Code Remix Summit 2026-05-12
sullis
0
100
AI Assisted Software Development - Portland Java User Group - 2026-04-14
sullis
0
120
Dependency Management for Java - Seattle 2025-11-18
sullis
0
78
Dependency Management for Java - Portland - 2025-11-04
sullis
0
51
Dependency management for Java applications 2025-09-11
sullis
0
84
S3 NYC Iceberg meetup 2025-07-10
sullis
0
74
Amazon S3 Chicago 2025-06-04
sullis
0
180
Amazon S3 Boston 2025-05-07
sullis
0
150
Netty ConFoo Montreal 2025-02-27
sullis
0
220
Other Decks in Programming
See All in Programming
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.2k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
Next.js: The final boss of Web Performance
guaca
0
390
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
2
250
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
AI-Powered Domain-Driven Design
ziobrando
0
420
AI Augmentation Techniques with Liberty
ivargrimstad
1
420
Modernizing iOS Apps
seyfoyun
0
150
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.9k
Distance field of Julia set
kinakomoti321
0
310
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
14
40k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
240
Become a Pro
speakerdeck
PRO
31
6.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Why Our Code Smells
bkeepers
PRO
340
58k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
300
Git: the NoSQL Database
bkeepers
PRO
433
67k
How GitHub (no longer) Works
holman
316
150k
Transcript
Microbenchmarking with JMH Sean Sullivan Portland Java User Group March
14, 2023
Java Microbenchmark Harness “JMH is a Java harness for building,
running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM.”
OSS projects that use JMH • Netty • Log4j2 •
Spring Framework • Apache Cassandra • Apache Kafka • Netflix Atlas • Netflix Spectator • Netflix Zuul
NOTE: JMH is not intended to be used in the
same way as a typical testing library such as JUnit. Simply adding the jmh-core jar file to your build is not enough to be able to run benchmarks.
“the key to using JMH is enabling the annotation- or
bytecode-processors to generate the synthetic benchmark code”
“Running benchmarks from the IDE is generally not recommended due
to generally uncontrolled environment in which the benchmarks run.”
Zuul: HeadersBenchmark
Zuul: HeadersBenchmark
Zuul: HeadersBenchmark
Zuul: HeadersBenchmark
Zuul: build.gradle jmh-gradle-plugin
Zuul: HeadersBenchmark ./gradlew --no-daemon clean :zuul-core:jmh
Learning JMH
Learning JMH
Learning JMH
microbenchmarks-java • CompressionBenchmark • CounterBenchmark • HttpHeadersBenchmark • Log4j2ClockBenchmark •
RandomBenchmark • UuidBenchmark
CompressionBenchmark • Goal: measure throughput of Gzip compression • Goal:
measure throughput of Brotli compression • Goal: evaluate Brotli compression parameters
CompressionBenchmark public enum CompressionType • GZIP • BROTLI_0 • BROTLI_4
• BROTLI_11
CompressionBenchmark
CompressionBenchmark
CompressionBenchmark # JMH version: 1.36 # VM version: JDK 17.0.6,
OpenJDK 64-Bit Server VM, 17.0.6+10-LTS # Warmup: 2 iterations, 10 s each # Measurement: 5 iterations, 10 s each # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time
CompressionBenchmark
The End