2026-04-05 14:31:17 +00:00
|
|
|
# data-access-benchmark
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
mvn package -q
|
2026-04-05 15:11:36 +00:00
|
|
|
java -jar target/benchmarks.jar
|
|
|
|
|
|
|
|
|
|
# optional: suppress JDK warning from the launcher JVM
|
|
|
|
|
java --sun-misc-unsafe-memory-access=allow -jar target/benchmarks.jar
|
2026-04-05 14:31:17 +00:00
|
|
|
```
|
2026-04-05 15:50:45 +00:00
|
|
|
|
|
|
|
|
## Benchmark Results (auto-updated)
|
|
|
|
|
|
|
|
|
|
This section is automatically refreshed by the app after each benchmark run.
|
|
|
|
|
Only the content between the markers below is rewritten, so the rest of this README stays untouched.
|
|
|
|
|
|
|
|
|
|
<!-- BENCHMARK_RESULTS_START -->
|
|
|
|
|
|
2026-04-05 18:02:02 +00:00
|
|
|
Last updated: 2026-04-05T17:50:24.432296204Z
|
2026-04-05 15:50:45 +00:00
|
|
|
|
|
|
|
|
### System info
|
|
|
|
|
|
|
|
|
|
- OS: `Linux 6.12.74+deb13+1-amd64` (amd64)
|
|
|
|
|
- Java: `25.0.2` (vendor: `Microsoft`)
|
|
|
|
|
- JVM: `OpenJDK 64-Bit Server VM` `25.0.2+10-LTS`
|
|
|
|
|
- CPU model: `AMD Ryzen 5 9600X 6-Core Processor`
|
|
|
|
|
- Total physical memory: `80078 MB`
|
|
|
|
|
- Available processors: `12`
|
|
|
|
|
- Max heap: `20032 MB`
|
|
|
|
|
|
|
|
|
|
### Run context
|
|
|
|
|
|
|
|
|
|
- Benchmark: `com.benchmark.benchmarks.DataAccessBenchmark.readSingleUser`
|
|
|
|
|
- Thread count: `12`
|
2026-04-05 18:02:02 +00:00
|
|
|
- Fixtures in this snapshot: `26`
|
2026-04-05 15:50:45 +00:00
|
|
|
|
|
|
|
|
### Results
|
|
|
|
|
|
|
|
|
|
#### Throughput
|
|
|
|
|
|
|
|
|
|
| Rank | Fixture | Score | Error | Unit |
|
|
|
|
|
|---:|---|---:|---:|---|
|
2026-04-05 18:02:02 +00:00
|
|
|
| 1 | `in-memory` | 1089.340 | 31.288 | `ops/us` |
|
|
|
|
|
| 2 | `memory-mapped-file` | 79.877 | 2.664 | `ops/us` |
|
|
|
|
|
| 3 | `datastore4j` | 62.734 | 2.530 | `ops/us` |
|
|
|
|
|
| 4 | `leveldb` | 31.035 | 4.986 | `ops/us` |
|
|
|
|
|
| 5 | `mapdb` | 30.965 | 1.710 | `ops/us` |
|
|
|
|
|
| 6 | `sqlite-jdbc-memory` | 4.250 | 0.107 | `ops/us` |
|
|
|
|
|
| 7 | `lmdb` | 3.350 | 1.844 | `ops/us` |
|
|
|
|
|
| 8 | `kryo` | 2.648 | 0.213 | `ops/us` |
|
|
|
|
|
| 9 | `gson` | 2.314 | 0.125 | `ops/us` |
|
|
|
|
|
| 10 | `sqlite-jdbc` | 2.032 | 0.320 | `ops/us` |
|
|
|
|
|
| 11 | `sqlite-ormlite-memory` | 1.215 | 0.049 | `ops/us` |
|
|
|
|
|
| 12 | `sqlite-ormlite` | 0.931 | 0.037 | `ops/us` |
|
|
|
|
|
| 13 | `duckdb-jdbc` | 0.054 | 0.002 | `ops/us` |
|
2026-04-05 15:50:45 +00:00
|
|
|
|
|
|
|
|
#### AverageTime
|
|
|
|
|
|
|
|
|
|
| Rank | Fixture | Score | Error | Unit |
|
|
|
|
|
|---:|---|---:|---:|---|
|
2026-04-05 18:02:02 +00:00
|
|
|
| 1 | `in-memory` | 0.011 | 0.000 | `us/op` |
|
|
|
|
|
| 2 | `memory-mapped-file` | 0.151 | 0.005 | `us/op` |
|
|
|
|
|
| 3 | `datastore4j` | 0.190 | 0.013 | `us/op` |
|
|
|
|
|
| 4 | `leveldb` | 0.330 | 0.017 | `us/op` |
|
|
|
|
|
| 5 | `mapdb` | 0.583 | 0.066 | `us/op` |
|
|
|
|
|
| 6 | `sqlite-jdbc-memory` | 2.885 | 0.233 | `us/op` |
|
|
|
|
|
| 7 | `lmdb` | 3.364 | 1.158 | `us/op` |
|
|
|
|
|
| 8 | `kryo` | 4.503 | 0.211 | `us/op` |
|
|
|
|
|
| 9 | `gson` | 5.175 | 0.574 | `us/op` |
|
|
|
|
|
| 10 | `sqlite-jdbc` | 5.827 | 0.302 | `us/op` |
|
|
|
|
|
| 11 | `sqlite-ormlite-memory` | 9.907 | 0.441 | `us/op` |
|
|
|
|
|
| 12 | `sqlite-ormlite` | 12.929 | 0.427 | `us/op` |
|
|
|
|
|
| 13 | `duckdb-jdbc` | 226.375 | 13.410 | `us/op` |
|
2026-04-05 15:50:45 +00:00
|
|
|
|
|
|
|
|
<!-- BENCHMARK_RESULTS_END -->
|