Skip to content

Commit 6023efb

Browse files
authored
Run 2026-02-28 (#126)
- Update AMI to run on latest LTS JDK 25, since that will be a common production deployment target moving forward - Update AMI to use newer c8g generation of compute-optimized VM (ARM64 architecture) - Capture raw results of fresh run in EC2 including latest library versions (run from latest master) - Create and link published spreadsheet and graphs visualizing results of latest run - Update README with new results
1 parent e9860d4 commit 6023efb

4 files changed

Lines changed: 617 additions & 33 deletions

File tree

README.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -55,37 +55,37 @@ Not evaluated are: RAM utilization, compression, payloads > 1 MB.
5555

5656
The benchmarks are written with [JMH](http://openjdk.java.net/projects/code-tools/jmh/) and for Java 17.
5757

58-
The results here-below were computed on January the 30th, 2024 with the following libraries and versions:
58+
The results here-below were computed on February the 28th, 2026 with the following libraries and versions:
5959

6060
| Library | Version |
6161
|--------------|----------|
62-
| avaje-jsonb | 1.9 |
62+
| avaje-jsonb | 1.11 |
6363
| boon | 0.34 |
6464
| djomo | 0.9.4 |
65-
| dsl-json | 1.10.0 |
66-
| fastjson | 2.0.46 |
65+
| dsl-json | 2.0.2 |
66+
| fastjson | 2.0.57 |
6767
| flexjson | 3.3 |
6868
| genson | 1.6 |
69-
| gson | 2.10.1 |
70-
| jackson | 2.16.0 |
69+
| gson | 2.11.1 |
70+
| jackson | 2.17.1 |
7171
| jodd json | 6.0.3 |
72-
| johnzon | 1.2.21 |
72+
| johnzon | 2.0.1 |
7373
| jakarta | 2.1.3 |
74-
| json-io | 4.24.0 |
74+
| json-io | 4.88.0 |
7575
| simplejson | 1.1.1 |
76-
| json-smart | 2.4.11 |
76+
| json-smart | 2.5.1 |
7777
| logansquare | 1.3.7 |
7878
| minimal-json | 0.9.5 |
7979
| mjson | 1.4.1 |
80-
| moshi | 1.15.0 |
81-
| nanojson | 1.8 |
82-
| org.json | 20231013 |
80+
| moshi | 1.15.1 |
81+
| nanojson | 1.9 |
82+
| org.json | 20240303 |
8383
| purejson | 1.0.1 |
8484
| qson | 1.1.1 |
85-
| tapestry | 5.8.3 |
86-
| underscore | 1.97 |
85+
| tapestry | 5.8.6 |
86+
| underscore | 1.101 |
8787
| yasson | 3.0.3 |
88-
| wast | 0.0.13.2 |
88+
| wast | 0.0.29.1 |
8989

9090
[All graphs and sheets are available in this google doc.][spreadsheet]
9191

@@ -115,20 +115,20 @@ Note: fewer libraries are tested with this model due to lack of support for some
115115

116116
### Benchmark configuration
117117

118-
Tests were run on an [Amazon EC2 c5.xlarge](https://aws.amazon.com/ec2/instance-types/c5/) (4 vCPU, 8 GiB RAM)
118+
Tests were run on an [Amazon EC2 c8g.xlarge](https://aws.amazon.com/ec2/instance-types/c8g/) (4 vCPU, 8 GiB RAM)
119119

120120
JMH info:
121121

122122
```
123123
# JMH version: 1.35
124-
# VM version: JDK 17.0.10, OpenJDK 64-Bit Server VM, 17.0.10+7-LTS
125-
# VM invoker: /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java
124+
# VM version: JDK 25.0.2, OpenJDK 64-Bit Server VM, 25.0.2+10-LTS
125+
# VM invoker: /usr/lib/jvm/java-25-amazon-corretto.aarch64/bin/java
126126
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector
127127
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
128128
# Warmup: 5 iterations, 10 s each
129129
# Measurement: 10 iterations, 3 s each
130130
# Timeout: 10 min per iteration
131-
# Threads: 16 threads, will synchronize iterations
131+
# Threads: 3 threads, will synchronize iterations
132132
# Benchmark mode: Throughput, ops/time
133133
```
134134

@@ -205,9 +205,9 @@ find numerous examples in the commit history. For instance:
205205
Pull requests are welcome.
206206

207207

208-
[jmh-results]: /archive/raw-results-2024-01-30.md
209-
[spreadsheet]: https://docs.google.com/spreadsheets/d/1a4kgv2R-IxANE_itV-qJwCnEBvc0HqHGh4bp4AXTFoY/edit?usp=sharing
210-
[graph-users-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=1217359585&format=image
211-
[graph-users-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=296776676&format=image
212-
[graph-clients-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=684555912&format=image
213-
[graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=2004244401&format=image
208+
[jmh-results]: /archive/raw-results-2026-02-28.md
209+
[spreadsheet]: https://docs.google.com/spreadsheets/d/1yVqx9Wvcrr9pdB0j70AcEJQSOPrztUKXI_pi-29NBOo/edit?usp=sharing
210+
[graph-users-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=1217359585&format=image
211+
[graph-users-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=296776676&format=image
212+
[graph-clients-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=684555912&format=image
213+
[graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=2004244401&format=image

ami.json

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,16 @@
1111
"region": "{{user `region`}}",
1212
"source_ami_filter": {
1313
"filters": {
14-
"name": "amzn2-ami-hvm-*-gp2",
15-
"architecture": "x86_64",
14+
"name": "al2023-ami-2023.*-kernel-6.1-arm64",
15+
"architecture": "arm64",
1616
"owner-alias": "amazon",
1717
"root-device-type": "ebs",
18-
"block-device-mapping.volume-type": "gp2",
19-
"ena-support": "true",
20-
"sriov-net-support": "simple",
2118
"virtualization-type": "hvm"
2219
},
2320
"owners": ["137112412989"],
2421
"most_recent": true
2522
},
26-
"instance_type": "c5.xlarge",
23+
"instance_type": "c8g.xlarge",
2724
"iam_instance_profile": "{{user `iam_instance_profile`}}",
2825
"ssh_username": "ec2-user",
2926
"ami_name": "java-json-benchmark-build-{{timestamp}}"
@@ -42,7 +39,7 @@
4239
"sudo yum -y clean all",
4340
"sudo yum -y upgrade",
4441
"sudo yum search java",
45-
"sudo yum install -y java-17-amazon-corretto-devel",
42+
"sudo yum install -y java-25-amazon-corretto-devel",
4643
"java -version",
4744
"mkdir ~/app",
4845
"tar xzf /tmp/app.tar.gz -C ~/app",

archive/all-runs.md

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,69 @@
11
Benchmark runs by date
22

3+
## 2026-02-28
4+
5+
| Library | Version |
6+
|--------------|----------|
7+
| avaje-jsonb | 1.11 |
8+
| boon | 0.34 |
9+
| djomo | 0.9.4 |
10+
| dsl-json | 2.0.2 |
11+
| fastjson | 2.0.57 |
12+
| flexjson | 3.3 |
13+
| genson | 1.6 |
14+
| gson | 2.11.1 |
15+
| jackson | 2.17.1 |
16+
| jodd json | 6.0.3 |
17+
| johnzon | 2.0.1 |
18+
| jakarta | 2.1.3 |
19+
| json-io | 4.88.0 |
20+
| simplejson | 1.1.1 |
21+
| json-smart | 2.5.1 |
22+
| logansquare | 1.3.7 |
23+
| minimal-json | 0.9.5 |
24+
| mjson | 1.4.1 |
25+
| moshi | 1.15.1 |
26+
| nanojson | 1.9 |
27+
| org.json | 20240303 |
28+
| purejson | 1.0.1 |
29+
| qson | 1.1.1 |
30+
| tapestry | 5.8.6 |
31+
| underscore | 1.101 |
32+
| yasson | 3.0.3 |
33+
| wast | 0.0.29.1 |
34+
35+
**`Users` model**
36+
37+
![json deserialization performance for primitive types, String, List and simple POJOs][20260228-graph-users-deser]
38+
![json serialization performance for primitive types, String, List and simple POJOs][20260228-graph-users-ser]
39+
40+
**`Clients` model**
41+
42+
![json deserialization performance for primitive types, String, List and simple POJOs, arrays, enum, UUID, LocalDate][20260228-graph-clients-deser]
43+
![json serialization performance for primitive types, String, List and simple POJOs, arrays, enum, UUID, LocalDate][20260228-graph-clients-ser]
44+
45+
**JMH configuration and hardware**
46+
47+
Tests were run on an [Amazon EC2 c8g.xlarge](https://aws.amazon.com/ec2/instance-types/c8g/) (4 vCPU, 8 GiB RAM)
48+
49+
```
50+
# JMH version: 1.35
51+
# VM version: JDK 25.0.2, OpenJDK 64-Bit Server VM, 25.0.2+10-LTS
52+
# VM invoker: /usr/lib/jvm/java-25-amazon-corretto.aarch64/bin/java
53+
# VM options: -Xms2g -Xmx2g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector
54+
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
55+
# Warmup: 5 iterations, 10 s each
56+
# Measurement: 10 iterations, 3 s each
57+
# Timeout: 10 min per iteration
58+
# Threads: 3 threads, will synchronize iterations
59+
# Benchmark mode: Throughput, ops/time
60+
```
61+
62+
**Links**
63+
64+
* [google spreadsheet][20260228-spreadsheet]
65+
* [raw-results-2026-02-28.md](/archive/raw-results-2026-02-28.md)
66+
367
## 2024-01-30
468

569
| Library | Version |
@@ -441,4 +505,10 @@ Same as below, JMH 1.15.
441505
[20240130-graph-users-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=1217359585&format=image
442506
[20240130-graph-users-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=296776676&format=image
443507
[20240130-graph-clients-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=684555912&format=image
444-
[20240130-graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=2004244401&format=image
508+
[20240130-graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=2004244401&format=image
509+
510+
[20260228-spreadsheet]: https://docs.google.com/spreadsheets/d/1yVqx9Wvcrr9pdB0j70AcEJQSOPrztUKXI_pi-29NBOo/edit?usp=sharing
511+
[20260228-graph-users-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=1217359585&format=image
512+
[20260228-graph-users-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=296776676&format=image
513+
[20260228-graph-clients-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=684555912&format=image
514+
[20260228-graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vSUD5_YT6-RXIvkwRiwFDMfGmEiYkYYs2fBY5p1p2iVQU01v71JQwMqPDlLAiLf2uL9STEzpOXTp0Us/pubchart?oid=2004244401&format=image

0 commit comments

Comments
 (0)