Comparing java.util.TreeMap against ChaosTree's BTreeMap and BPlusTreeMap
under heavy read workloads.
java -jar ct-benchmark/target/benchmarks.jar ChaosTreeMapReadBenchmark \
-p size=100000 -p seed=42 -wi 10 -w 500ms -i 10 -r 500ms -tu ns -rf text -rff ReadHeavy100K.txt
java -jar ct-benchmark/target/benchmarks.jar ChaosTreeMapReadBenchmark \
-p size=10000 -p seed=42 -wi 10 -w 500ms -i 10 -r 500ms -tu ns -rf text -rff ReadHeavy10K.txt
Caveats:
avgt), shown as
score ± error (JMH 99.9% confidence interval).
Cnt = 30).
GC profiler (-prof gc) is not attached in this run.
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 104.113 ± 1.840 | 103.749 ± 1.486 | 111.992 ± 7.934 |
| BTreeMap | 106.284 ± 0.749 | 105.011 ± 0.488 | 110.674 ± 0.312 |
| BPlusTreeMap | 104.784 ± 1.120 | 104.149 ± 0.418 | 105.350 ± 0.794 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 220.758 ± 3.533 | 161.532 ± 1.141 | 216.032 ± 27.020 |
| BTreeMap | 191.204 ± 1.651 | 188.098 ± 1.616 | 180.164 ± 3.480 |
| BPlusTreeMap | 175.192 ± 4.114 | 181.387 ± 2.267 | 166.751 ± 1.904 |
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 103.693 ± 0.266 | 105.311 ± 0.556 | 104.376 ± 1.993 |
| BTreeMap | 99.343 ± 0.739 | 98.972 ± 0.465 | 99.300 ± 0.335 |
| BPlusTreeMap | 101.579 ± 0.871 | 101.659 ± 4.012 | 100.650 ± 0.989 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 225.389 ± 4.334 | 186.226 ± 21.074 | 230.997 ± 4.349 |
| BTreeMap | 175.474 ± 1.009 | 178.824 ± 2.406 | 175.594 ± 1.970 |
| BPlusTreeMap | 183.437 ± 2.568 | 184.217 ± 1.137 | 176.353 ± 3.762 |
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 24.881 ± 0.120 | 28.065 ± 0.213 | 48.467 ± 0.391 |
| BTreeMap | 9.741 ± 0.065 | 10.583 ± 0.119 | 34.974 ± 0.100 |
| BPlusTreeMap | 9.700 ± 0.036 | 10.486 ± 0.055 | 32.903 ± 0.238 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 37.425 ± 1.403 | 44.945 ± 0.475 | 65.829 ± 0.322 |
| BTreeMap | 9.698 ± 0.043 | 10.449 ± 0.028 | 37.960 ± 0.072 |
| BPlusTreeMap | 9.669 ± 0.033 | 10.461 ± 0.036 | 38.685 ± 0.069 |
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 105.560 ± 1.109 | 104.442 ± 0.784 | 106.569 ± 2.703 |
| BTreeMap | 106.352 ± 0.253 | 106.776 ± 0.354 | 129.717 ± 0.446 |
| BPlusTreeMap | 104.392 ± 1.305 | 104.136 ± 0.355 | 108.605 ± 1.117 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 232.312 ± 3.469 | 165.451 ± 10.086 | 209.476 ± 12.999 |
| BTreeMap | 186.308 ± 0.829 | 192.617 ± 3.633 | 197.923 ± 7.215 |
| BPlusTreeMap | 173.365 ± 3.861 | 182.239 ± 3.475 | 171.394 ± 1.805 |
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 106.753 ± 1.950 | 107.809 ± 0.376 | 101.441 ± 0.590 |
| BTreeMap | 100.100 ± 0.604 | 99.493 ± 0.653 | 107.979 ± 0.254 |
| BPlusTreeMap | 104.221 ± 0.301 | 101.777 ± 0.539 | 105.642 ± 1.169 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 258.974 ± 2.397 | 204.973 ± 27.733 | 257.960 ± 16.230 |
| BTreeMap | 183.570 ± 4.975 | 184.059 ± 4.579 | 183.807 ± 5.338 |
| BPlusTreeMap | 190.062 ± 6.158 | 190.536 ± 8.955 | 187.670 ± 4.837 |
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 36.773 ± 0.273 | 41.598 ± 0.263 | 12.878 ± 0.308 |
| BTreeMap | 32.558 ± 0.119 | 30.118 ± 0.091 | 19.869 ± 1.320 |
| BPlusTreeMap | 29.850 ± 0.164 | 29.271 ± 0.146 | 15.760 ± 0.159 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 56.364 ± 3.225 | 52.246 ± 2.438 | 18.573 ± 0.420 |
| BTreeMap | 39.104 ± 0.336 | 40.498 ± 0.825 | 23.594 ± 0.484 |
| BPlusTreeMap | 41.954 ± 0.470 | 42.300 ± 1.581 | 23.054 ± 1.376 |
10k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 3.921 ± 0.031 | 4.421 ± 0.029 | 4.383 ± 0.038 |
| BTreeMap | 7.495 ± 0.033 | 7.469 ± 0.155 | 9.387 ± 1.266 |
| BPlusTreeMap | 1.596 ± 0.023 | 1.576 ± 0.037 | 3.579 ± 0.042 |
100k
| TreeType | TreeMap | descendingMap | subMap |
|---|---|---|---|
| JavaTreeMap | 4.370 ± 0.101 | 6.637 ± 1.016 | 4.700 ± 0.092 |
| BTreeMap | 6.047 ± 1.471 | 4.380 ± 1.458 | 8.565 ± 0.252 |
| BPlusTreeMap | 1.522 ± 0.007 | 1.555 ± 0.013 | 3.574 ± 0.041 |