From 2e08b54785e5022d4024b702ff1292643fbbebf5 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Tue, 19 Mar 2024 16:41:38 -0700 Subject: [PATCH] Update README.md with 1.0 benchmarks Closes #7 --- README.md | 94 +++++++++++++++++++++++++++---------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index ce01042..8a15e2d 100644 --- a/README.md +++ b/README.md @@ -9,49 +9,49 @@ Hardware for all benchmarks is a mac m1 2020. ## Skip list ``` -New conflict set: 1.927 sec - 0.649 Mtransactions/sec - 2.595 Mkeys/sec -Detect only: 1.838 sec - 0.680 Mtransactions/sec - 2.721 Mkeys/sec -Skiplist only: 1.256 sec - 0.995 Mtransactions/sec - 3.981 Mkeys/sec +New conflict set: 1.964 sec + 0.637 Mtransactions/sec + 2.546 Mkeys/sec +Detect only: 1.859 sec + 0.672 Mtransactions/sec + 2.690 Mkeys/sec +Skiplist only: 1.275 sec + 0.980 Mtransactions/sec + 3.921 Mkeys/sec Performance counters: - Build: 0.0381 - Add: 0.0499 - Detect: 1.84 - D.Sort: 0.411 - D.Combine: 0.0141 - D.CheckRead: 0.667 + Build: 0.0496 + Add: 0.0539 + Detect: 1.86 + D.Sort: 0.412 + D.Combine: 0.0139 + D.CheckRead: 0.682 D.CheckIntraBatch: 0.00673 - D.MergeWrite: 0.589 - D.RemoveBefore: 0.146 + D.MergeWrite: 0.593 + D.RemoveBefore: 0.148 ``` ## Radix tree (this implementation) ``` -New conflict set: 1.318 sec - 0.949 Mtransactions/sec - 3.795 Mkeys/sec -Detect only: 1.202 sec - 1.040 Mtransactions/sec - 4.160 Mkeys/sec +New conflict set: 1.289 sec + 0.970 Mtransactions/sec + 3.879 Mkeys/sec +Detect only: 1.199 sec + 1.043 Mtransactions/sec + 4.170 Mkeys/sec Skiplist only: 0.542 sec - 2.307 Mtransactions/sec - 9.227 Mkeys/sec + 2.305 Mtransactions/sec + 9.220 Mkeys/sec Performance counters: - Build: 0.0566 - Add: 0.058 + Build: 0.0395 + Add: 0.0492 Detect: 1.2 D.Sort: 0.411 - D.Combine: 0.0136 + D.Combine: 0.0135 D.CheckRead: 0.22 - D.CheckIntraBatch: 0.00659 + D.CheckIntraBatch: 0.00652 D.MergeWrite: 0.322 - D.RemoveBefore: 0.226 + D.RemoveBefore: 0.223 ``` # Our benchmark @@ -60,25 +60,25 @@ Performance counters: | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- -| 257.12 | 3,889,241.18 | 0.2% | 0.01 | `point reads` -| 276.38 | 3,618,145.21 | 0.3% | 0.01 | `prefix reads` -| 494.19 | 2,023,531.84 | 0.2% | 0.01 | `range reads` -| 451.22 | 2,216,229.54 | 1.3% | 0.01 | `point writes` -| 435.80 | 2,294,622.46 | 0.3% | 0.01 | `prefix writes` -| 246.67 | 4,053,999.27 | 4.2% | 0.02 | `range writes` -| 555.46 | 1,800,304.91 | 0.9% | 0.01 | `monotonic increasing point writes` +| 249.47 | 4,008,533.72 | 0.5% | 0.01 | `point reads` +| 236.78 | 4,223,252.12 | 0.4% | 0.01 | `prefix reads` +| 432.76 | 2,310,737.74 | 0.1% | 0.01 | `range reads` +| 449.42 | 2,225,105.96 | 0.5% | 0.01 | `point writes` +| 438.47 | 2,280,674.39 | 0.3% | 0.01 | `prefix writes` +| 242.92 | 4,116,581.59 | 3.7% | 0.02 | `range writes` +| 553.31 | 1,807,319.60 | 0.7% | 0.01 | `monotonic increasing point writes` ## Radix tree (this implementation) | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- -| 19.40 | 51,554,711.61 | 0.2% | 0.01 | `point reads` -| 57.10 | 17,514,573.13 | 0.4% | 0.01 | `prefix reads` -| 215.65 | 4,637,096.77 | 0.4% | 0.01 | `range reads` -| 27.52 | 36,340,784.38 | 0.2% | 0.01 | `point writes` -| 42.16 | 23,720,515.40 | 0.7% | 0.01 | `prefix writes` -| 48.33 | 20,691,082.14 | 2.7% | 0.01 | `range writes` -| 87.93 | 11,372,164.55 | 2.5% | 0.01 | `monotonic increasing point writes` +| 19.35 | 51,669,510.11 | 0.2% | 0.01 | `point reads` +| 56.64 | 17,655,057.00 | 0.2% | 0.01 | `prefix reads` +| 217.04 | 4,607,450.05 | 0.2% | 0.01 | `range reads` +| 26.31 | 38,012,015.29 | 0.0% | 0.01 | `point writes` +| 41.45 | 24,124,003.19 | 0.2% | 0.01 | `prefix writes` +| 48.33 | 20,691,082.14 | 0.0% | 0.01 | `range writes` +| 84.92 | 11,775,856.81 | 4.0% | 0.01 | `monotonic increasing point writes` # "Real data" test @@ -87,13 +87,13 @@ Point queries only, best of three runs. Gc ratio is the ratio of time spent doin ## skip list ``` -Check: 11.3839 seconds, 328.404 MB/s, Add: 5.32878 seconds, 131.745 MB/s, Gc ratio: 45.5903% +Check: 11.267 seconds, 331.812 MB/s, Add: 5.33323 seconds, 131.635 MB/s, Gc ratio: 45.4671% ``` ## radix tree ``` -Check: 2.55069 seconds, 1465.69 MB/s, Add: 2.08443 seconds, 336.801 MB/s, Gc ratio: 41.748% +Check: 2.48508 seconds, 1504.38 MB/s, Add: 2.07295 seconds, 338.666 MB/s, Gc ratio: 42.2825% ``` ## hash table @@ -101,5 +101,5 @@ Check: 2.55069 seconds, 1465.69 MB/s, Add: 2.08443 seconds, 336.801 MB/s, Gc rat (The hash table implementation doesn't work on range queries, and its purpose is to provide an idea of how fast point queries can be) ``` -Check: 1.84205 seconds, 2029.54 MB/s, Add: 0.60281 seconds, 1164.61 MB/s, Gc ratio: 48.8159% +Check: 1.83931 seconds, 2032.56 MB/s, Add: 0.607861 seconds, 1154.93 MB/s, Gc ratio: 48.7142% ```