1- ```` markdown
21# HTTP Client Benchmark Harness
32
43This module contains HTTP client benchmark harness using [ JMH] .
@@ -11,41 +10,52 @@ or measurement time in order to get more reliable data.
1110There are three ways to run benchmarks.
1211
1312- Using the executable JAR (Preferred usage per JMH site)
14- ``` bash
15- mvn clean install -P quick -pl :http-client-benchmarks --am
16-
13+ ```
14+ mvn clean install -P quick -pl :http-client-benchmarks --am
15+ ```
16+
1717# Run specific benchmark
18- java -jar target/benchmarks.jar Apache5Benchmark
18+ ```
19+ java -jar target/http-client-benchmarks.jar Apache5Benchmark
20+ ```
1921
20- # Run all benchmarks: 3 warm up iterations, 3 benchmark iterations, 1 fork
22+ # Run all benchmarks: 3 warm up iterations, 3 benchmark iterations, 1 fork.
23+ ```
2124java -jar target/http-client-benchmarks.jar -wi 3 -i 3 -f 1
2225```
2326
2427- Using ` mvn exec:exec ` commands to invoke ` UnifiedBenchmarkRunner ` main method
25- ``` bash
26- mvn clean install -P quick -pl :http-client-benchmarks --am
27- mvn clean install -pl :bom-internal
28- cd test/http-client-benchmarks
29- mvn exec:exec
30- ```
28+ ```
29+ mvn clean install -P quick -pl :http-client-benchmarks --am
30+ mvn clean install -pl :bom-internal
31+ cd test/http-client-benchmarks
32+ mvn exec:exec
33+ ```
3134
3235## UnifiedBenchmarkRunner
3336
3437The ` UnifiedBenchmarkRunner ` provides a comprehensive comparison between different HTTP client implementations:
3538
3639- ** Apache4** : Apache HttpClient 4.x baseline
37- - ** Apache5-Platform** : Apache HttpClient 5.x with platform threads
40+ - ** Apache5-Platform** : Apache HttpClient 5.x with platform threads
3841- ** Apache5-Virtual** : Apache HttpClient 5.x with virtual threads
3942
40- The runner executes all benchmark variations, prints and publishes metrics to CloudWatch.
43+ The runner executes all benchmark variations, prints metrics to console, and publishes results to CloudWatch metrics for monitoring and analysis .
4144
4245## Benchmark Operations
4346
4447Each benchmark implementation tests the following operations:
4548- ` simpleGet ` : Single-threaded GET operations
46- - ` simplePut ` : Single-threaded PUT operations
49+ - ` simplePut ` : Single-threaded PUT operations
4750- ` multiThreadedGet ` : Multi-threaded GET operations (10 threads)
4851- ` multiThreadedPut ` : Multi-threaded PUT operations (10 threads)
4952
50- [ JMH ] : http://openjdk.java.net/projects/code-tools/jmh/
51- ````
53+ ## Prerequisites
54+
55+ ### Java Runtime Requirements
56+
57+ - ** Java 8+** : Required for running the benchmarks (as specified by ` <javac.target>8</javac.target> ` )
58+ - ** Java 21+** : Required for virtual threads support (Apache5-Virtual benchmarks)
59+
60+ ** Note** : Virtual threads are a preview feature in Java 19-20 and became stable in Java 21. The Apache5-Virtual benchmarks require Java 21 or later.
61+
0 commit comments