Analyzing IO System Performance Using Asynchronous HTTP Clients
summary
A talk about measuring performance of asynchronous, IO-heavy Java HTTP clients. It covers setting up a testbench, writing benchmarks with JMH and techniques for correctly benchmarking asynchronous APIs, then locating bottlenecks using Java and Linux-level profiling tools, and finally compares behavior and performance of popular HTTP clients under different conditions.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 2:31Problem statement
- 3:33Benchmark hardware
- 6:22Network vs Local Host
- 8:28Testbed setup
- 9:13Web server setup
- 13:05Server performance check
- 13:49JMH benchmarking tool
- 14:53Benchmark mistakes
- 17:23Benchmark parameters
- 19:09Sync HTTP clients
- 20:54Async Java HTTP clients
- 21:59Profiling performance
- 23:47BCC tools
- 26:17Netty async analysis
- 31:44Apache async analysis
- 33:52Conclusions and recommendations
- 36:19Final client choice
- 37:22Q&A
related talks
46mReal-world HTTP benchmarking
38mBenchmarking Code Performance with JMH
29mJava Performance Testing for Everyone
01h 28mThe dark art of performance tuning or how to become a performance hero ...
41mUnleash the Power of Open-Source Java Profilers
45mHow difficult can it be to write efficient code?
50mJPoint 2023 TechRadar: Performance Tools
47mMicrobenchmarks performance in the smaller scale
