From be8ac879c5f1c0de023cecde949a4511940c82d5 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Mon, 18 Mar 2024 17:24:26 -0700 Subject: [PATCH] Update README benchmarks --- README.md | 108 +++++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 9a73c2e..ce01042 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.962 sec - 0.637 Mtransactions/sec - 2.549 Mkeys/sec -Detect only: 1.853 sec - 0.674 Mtransactions/sec - 2.698 Mkeys/sec -Skiplist only: 1.269 sec - 0.985 Mtransactions/sec - 3.940 Mkeys/sec +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 Performance counters: - Build: 0.0526 - Add: 0.054 - Detect: 1.85 - D.Sort: 0.413 - D.Combine: 0.0148 - D.CheckRead: 0.678 - D.CheckIntraBatch: 0.00679 - D.MergeWrite: 0.591 - D.RemoveBefore: 0.147 + Build: 0.0381 + Add: 0.0499 + Detect: 1.84 + D.Sort: 0.411 + D.Combine: 0.0141 + D.CheckRead: 0.667 + D.CheckIntraBatch: 0.00673 + D.MergeWrite: 0.589 + D.RemoveBefore: 0.146 ``` ## Radix tree (this implementation) ``` -New conflict set: 1.342 sec - 0.931 Mtransactions/sec - 3.726 Mkeys/sec -Detect only: 1.227 sec - 1.018 Mtransactions/sec - 4.074 Mkeys/sec -Skiplist only: 0.576 sec - 2.169 Mtransactions/sec - 8.676 Mkeys/sec +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 +Skiplist only: 0.542 sec + 2.307 Mtransactions/sec + 9.227 Mkeys/sec Performance counters: - Build: 0.0568 - Add: 0.0564 - Detect: 1.23 - D.Sort: 0.414 - D.Combine: 0.0162 - D.CheckRead: 0.228 - D.CheckIntraBatch: 0.00665 - D.MergeWrite: 0.348 - D.RemoveBefore: 0.211 + Build: 0.0566 + Add: 0.058 + Detect: 1.2 + D.Sort: 0.411 + D.Combine: 0.0136 + D.CheckRead: 0.22 + D.CheckIntraBatch: 0.00659 + D.MergeWrite: 0.322 + D.RemoveBefore: 0.226 ``` # Our benchmark @@ -60,25 +60,25 @@ Performance counters: | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- -| 254.17 | 3,934,426.23 | 0.3% | 0.01 | `point reads` -| 275.58 | 3,628,769.92 | 2.1% | 0.01 | `prefix reads` -| 494.87 | 2,020,718.51 | 0.7% | 0.01 | `range reads` -| 495.91 | 2,016,512.61 | 1.7% | 0.01 | `point writes` -| 478.11 | 2,091,578.00 | 0.8% | 0.01 | `prefix writes` -| 307.08 | 3,256,480.40 | 1.9% | 0.04 | `range writes` -| 610.89 | 1,636,953.81 | 0.7% | 0.01 | `monotonic increasing point writes` +| 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` ## Radix tree (this implementation) | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- -| 22.39 | 44,667,832.17 | 0.2% | 0.01 | `point reads` -| 53.89 | 18,554,840.41 | 3.4% | 0.01 | `prefix reads` -| 217.71 | 4,593,220.24 | 0.2% | 0.01 | `range reads` -| 29.72 | 33,642,099.66 | 1.1% | 0.01 | `point writes` -| 44.86 | 22,294,037.02 | 0.8% | 0.01 | `prefix writes` -| 55.00 | 18,181,818.18 | 0.8% | 0.03 | `range writes` -| 109.21 | 9,156,917.53 | 2.9% | 0.01 | `monotonic increasing point writes` +| 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` # "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.7282 seconds, 318.763 MB/s, Add: 5.76499 seconds, 121.776 MB/s, Gc ratio: 48.0772% +Check: 11.3839 seconds, 328.404 MB/s, Add: 5.32878 seconds, 131.745 MB/s, Gc ratio: 45.5903% ``` ## radix tree ``` -Check: 3.27475 seconds, 1141.62 MB/s, Add: 2.13594 seconds, 328.678 MB/s, Gc ratio: 50.1739% +Check: 2.55069 seconds, 1465.69 MB/s, Add: 2.08443 seconds, 336.801 MB/s, Gc ratio: 41.748% ``` ## hash table @@ -101,5 +101,5 @@ Check: 3.27475 seconds, 1141.62 MB/s, Add: 2.13594 seconds, 328.678 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.86291 seconds, 2006.81 MB/s, Add: 0.923653 seconds, 760.067 MB/s, Gc ratio: 54.2605% -``` \ No newline at end of file +Check: 1.84205 seconds, 2029.54 MB/s, Add: 0.60281 seconds, 1164.61 MB/s, Gc ratio: 48.8159% +```