Branch-free child function
This commit is contained in:
36
README.md
36
README.md
@@ -1,6 +1,7 @@
|
||||
feature | weaselab | fdb |
|
||||
|-|-|-|
|
||||
|based on|node-copying treap|node-copying treap|
|
||||
|branch-free `child` function|✅|❌|
|
||||
|bytes per node (worst-case)|64 + kv len + 1\*|96 + kv len|
|
||||
|cheaper iteration*|❌|✅|
|
||||
|efficient bulk queries|✅|❌|
|
||||
@@ -21,27 +22,28 @@ feature | weaselab | fdb |
|
||||
# benchmarks
|
||||
|
||||
## weaselab
|
||||
|
||||
| ns/op | op/s | err% | total | benchmark
|
||||
|--------------------:|--------------------:|--------:|----------:|:----------
|
||||
| 1,537.31 | 650,485.22 | 2.0% | 0.21 | `monotonically increasing`
|
||||
| 1.25 | 798,963,102.97 | 0.1% | 0.01 | `*iter`
|
||||
| 38.71 | 25,831,420.46 | 3.2% | 0.01 | `++iter`
|
||||
| 37.31 | 26,801,664.98 | 0.3% | 0.01 | `--iter`
|
||||
| 133.17 | 7,508,978.37 | 2.8% | 0.02 | `begin`
|
||||
| 129.51 | 7,721,547.35 | 0.4% | 0.02 | `begin (firstGeq)`
|
||||
| 54.40 | 18,381,173.00 | 1.2% | 0.01 | `end`
|
||||
| 245.34 | 4,075,961.09 | 1.1% | 0.01 | `bulkFirstGeq`
|
||||
| 1,538.88 | 649,824.01 | 2.7% | 0.22 | `monotonically increasing`
|
||||
| 1.25 | 798,888,023.37 | 0.0% | 0.01 | `*iter`
|
||||
| 32.10 | 31,153,434.23 | 0.7% | 0.01 | `++iter`
|
||||
| 31.08 | 32,178,831.30 | 0.3% | 0.01 | `--iter`
|
||||
| 139.19 | 7,184,433.93 | 2.2% | 0.02 | `begin`
|
||||
| 176.43 | 5,667,847.59 | 0.3% | 0.02 | `begin (firstGeq)`
|
||||
| 54.56 | 18,329,336.92 | 0.4% | 0.01 | `end`
|
||||
| 159.37 | 6,274,892.80 | 0.1% | 0.10 | `bulkFirstGeq`
|
||||
| 153.55 | 6,512,408.74 | 0.1% | 0.09 | `bulkFirstGeq (latest version)`
|
||||
|
||||
## fdb
|
||||
|
||||
| ns/op | op/s | err% | total | benchmark
|
||||
|--------------------:|--------------------:|--------:|----------:|:----------
|
||||
| 2,244.65 | 445,503.99 | 1.3% | 0.29 | `monotonically increasing`
|
||||
| 2.06 | 486,311,738.92 | 0.3% | 0.01 | `*iter`
|
||||
| 12.53 | 79,826,977.13 | 0.4% | 0.01 | `++iter`
|
||||
| 8.86 | 112,927,293.80 | 1.3% | 0.01 | `--iter`
|
||||
| 89.27 | 11,201,505.02 | 0.7% | 0.01 | `begin`
|
||||
| 144.38 | 6,926,060.07 | 2.9% | 0.02 | `begin (firstGeq)`
|
||||
| 71.84 | 13,920,283.88 | 0.4% | 0.01 | `end`
|
||||
| 412.10 | 2,426,597.75 | 0.2% | 0.01 | `bulkFirstGeq`
|
||||
| 2,236.83 | 447,061.26 | 1.0% | 0.29 | `monotonically increasing`
|
||||
| 2.11 | 473,370,596.42 | 0.9% | 0.01 | `*iter`
|
||||
| 12.07 | 82,858,977.78 | 1.2% | 0.01 | `++iter`
|
||||
| 8.54 | 117,158,071.80 | 0.9% | 0.01 | `--iter`
|
||||
| 94.26 | 10,608,588.66 | 1.1% | 0.01 | `begin`
|
||||
| 159.01 | 6,288,940.61 | 0.4% | 0.02 | `begin (firstGeq)`
|
||||
| 73.47 | 13,610,276.41 | 0.9% | 0.01 | `end`
|
||||
| 422.53 | 2,366,723.10 | 0.1% | 0.25 | `bulkFirstGeq`
|
||||
| 365.13 | 2,738,758.86 | 0.1% | 0.22 | `bulkFirstGeq (latest version)`
|
||||
|
Reference in New Issue
Block a user