2025-03-04 11:34:40 +00:00
2025-03-04 10:41:05 +00:00
2025-03-04 11:34:40 +00:00
2025-03-04 10:27:08 +00:00
2025-03-04 10:25:53 +00:00
2025-03-04 10:28:50 +00:00
2025-03-04 10:25:45 +00:00
2025-03-04 10:31:23 +00:00
2025-03-03 11:38:47 +01:00
2025-03-04 10:41:35 +00:00

Experimental results for candidate Boost Bloom Library

The tables show the false positive rate (FPR) and execution times in nanoseconds per operation for six different configurations of boost::bloom::filter<int, ...> where N elements have been inserted. Filters are constructed with a capacity c*N (bits), so c is the number of bits used per element. For each combination of c and a given filter configuration, we have selected the optimum value of K (that yielding the minimum FPR). Standard release-mode settings are used; AVX2 is indicated for Visual Studio builds (/arch:AVX2) and 64-bit GCC/Clang builds (-mavx2), which causes fast_multiblock32 to use its AVX2 variant.

For reference, we provide also insertion, successful lookup and unsuccessful lookup times for a boost::unordered_flat_set<int> with the same number of elements N.

Results

GCC 14, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
25.98 5.28 3.70
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1635 10.27 9.84 15.72 4 3.3525 3.74 4.13 4.10 5 2.4274 4.83 5.05 5.03
12 9 0.3151 15.50 14.35 16.59 5 1.0369 4.48 4.58 4.61 8 0.4244 6.44 7.72 7.74
16 11 0.0455 19.10 17.91 15.86 6 0.4138 5.13 5.10 5.19 11 0.0782 8.84 12.37 13.03
20 14 0.0084 25.23 22.63 16.40 7 0.1936 6.14 5.69 5.69 14 0.0163 10.97 14.67 14.64
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7402 2.75 3.05 3.10 5 3.0203 4.53 4.77 4.73 5 2.3232 5.19 5.89 6.13
12 8 0.5360 2.30 2.91 2.91 6 0.8293 5.09 5.14 5.15 8 0.3758 7.63 9.14 9.18
16 11 0.1169 5.52 5.55 3.80 7 0.2824 5.95 5.99 5.99 11 0.0581 16.69 13.21 13.19
20 14 0.0304 5.49 5.53 3.77 8 0.1197 6.47 6.35 6.35 14 0.0131 11.55 16.50 16.46

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
30.46 17.60 8.08
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1566 13.16 12.79 17.28 4 3.3462 5.78 5.43 5.48 5 2.4515 6.13 7.01 7.04
12 9 0.3146 21.68 19.34 18.38 5 1.0310 5.90 7.29 8.00 8 0.4244 8.00 9.88 9.83
16 11 0.0456 29.43 34.41 19.37 6 0.4035 15.89 10.54 7.62 11 0.0776 12.65 17.42 15.37
20 14 0.0066 47.46 42.99 19.70 7 0.1879 10.57 11.30 16.92 14 0.0153 16.06 22.45 21.62
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7234 3.63 4.21 4.22 5 3.0448 5.90 6.06 6.09 5 2.3208 6.65 8.12 8.41
12 8 0.5407 2.95 3.79 3.76 6 0.8244 6.18 6.28 6.25 8 0.3758 8.18 9.94 9.91
16 11 0.1174 9.15 9.06 6.31 7 0.2885 8.01 7.96 8.00 11 0.0641 17.99 15.56 15.32
20 14 0.0276 9.86 9.82 6.99 8 0.1185 11.06 10.93 9.96 14 0.0120 18.08 24.36 23.90

Clang 18, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
26.70 4.02 3.79
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1635 9.22 9.22 15.38 4 3.3525 3.32 4.05 3.97 5 2.4274 3.04 3.58 3.58
12 9 0.3151 13.72 13.48 16.47 5 1.0369 3.84 4.57 4.73 8 0.4244 2.71 3.36 3.37
16 11 0.0455 17.39 16.67 15.77 6 0.4138 4.35 5.09 5.09 11 0.0782 5.51 6.35 6.19
20 14 0.0084 20.42 21.18 15.26 7 0.1936 4.82 5.87 5.85 14 0.0163 5.82 6.89 6.90
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7402 2.56 2.50 2.49 5 3.0203 3.87 4.69 4.57 5 2.3232 3.24 3.53 3.48
12 8 0.5360 2.18 2.26 2.25 6 0.8293 4.60 5.33 5.34 8 0.3758 3.71 3.71 3.74
16 11 0.1169 4.18 4.37 3.17 7 0.2824 4.93 6.02 6.00 11 0.0581 5.85 6.09 6.11
20 14 0.0304 4.13 4.35 3.14 8 0.1197 2.83 3.33 3.36 14 0.0131 6.29 7.01 7.21

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
31.43 15.45 6.51
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1566 11.15 10.83 16.57 4 3.3462 4.02 4.79 4.62 5 2.4515 3.69 4.36 4.31
12 9 0.3146 16.13 15.49 17.40 5 1.0310 5.15 5.20 5.65 8 0.4244 4.33 4.34 4.11
16 11 0.0456 20.65 27.37 18.02 6 0.4035 5.73 6.64 7.85 11 0.0776 8.44 7.97 8.10
20 14 0.0066 43.40 42.56 18.01 7 0.1879 8.11 8.90 10.98 14 0.0153 8.83 13.11 11.84
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7234 3.21 3.14 3.28 5 3.0448 4.81 5.64 5.44 5 2.3208 3.85 4.31 4.30
12 8 0.5407 2.52 2.68 2.67 6 0.8244 5.74 6.32 5.88 8 0.3758 4.43 4.96 4.97
16 11 0.1174 5.40 5.81 4.26 7 0.2885 7.79 9.07 9.99 11 0.0641 7.23 8.01 9.21
20 14 0.0276 10.08 9.57 5.59 8 0.1185 4.84 8.12 5.98 14 0.0120 9.15 11.54 10.73

Clang 15, ARM64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
25.37 7.98 5.46
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1635 9.64 7.28 16.31 4 3.3525 2.25 1.81 1.75 5 2.4274 3.33 4.06 2.67
12 9 0.3151 16.89 9.20 15.84 5 1.0369 2.23 2.01 1.96 8 0.4244 4.37 3.15 2.59
16 11 0.0455 17.32 10.04 16.51 6 0.4138 3.04 2.69 2.31 11 0.0782 9.38 3.43 5.56
20 14 0.0084 25.69 17.45 16.77 7 0.1936 3.52 3.25 2.68 14 0.0163 8.47 6.02 7.80
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7402 2.43 2.46 4.83 5 3.0203 2.34 1.83 1.83 5 2.3232 3.87 2.12 2.75
12 8 0.5360 2.12 2.39 2.41 6 0.8293 2.28 1.85 2.06 8 0.3758 6.27 3.75 3.79
16 11 0.1169 3.67 3.19 3.03 7 0.2824 3.24 3.89 2.66 11 0.0581 8.59 3.57 4.41
20 14 0.0304 6.18 5.05 3.31 8 0.1197 2.20 2.46 2.06 14 0.0131 7.40 5.69 5.35

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
37.05 20.12 12.87
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1566 18.09 16.12 26.61 4 3.3462 5.16 6.19 7.25 5 2.4515 6.54 7.04 5.66
12 9 0.3146 46.39 36.65 31.99 5 1.0310 8.69 9.74 10.84 8 0.4244 12.02 14.01 12.94
16 11 0.0456 68.01 54.68 33.66 6 0.4035 15.53 12.03 13.39 11 0.0776 23.71 18.49 18.36
20 14 0.0066 95.45 72.08 32.50 7 0.1879 15.96 12.95 14.75 14 0.0153 33.94 32.68 29.22
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7234 6.25 10.01 9.26 5 3.0448 5.61 6.08 6.25 5 2.3208 7.02 8.63 6.81
12 8 0.5407 8.89 9.47 9.97 6 0.8244 11.97 10.95 12.14 8 0.3758 15.87 16.31 15.31
16 11 0.1174 19.66 17.78 12.44 7 0.2885 12.70 12.06 11.53 11 0.0641 19.54 15.72 15.58
20 14 0.0276 13.53 15.84 10.63 8 0.1185 10.14 9.70 9.35 14 0.0120 20.61 18.35 18.87

VS 2022, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
35.10 5.81 3.54
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1635 12.00 12.50 16.99 4 3.3525 5.82 4.22 4.26 5 2.4274 7.89 5.58 5.58
12 9 0.3151 18.39 17.67 17.63 5 1.0369 6.96 4.73 4.74 8 0.4244 11.61 8.51 8.55
16 11 0.0455 23.96 21.39 16.81 6 0.4138 8.62 5.32 5.27 11 0.0782 15.26 10.93 10.87
20 14 0.0084 31.16 27.17 17.49 7 0.1936 9.91 6.08 5.91 14 0.0163 17.91 14.28 14.21
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7402 3.34 3.93 3.93 5 3.0203 6.98 5.30 5.23 5 2.3232 9.17 5.58 5.60
12 8 0.5360 2.88 4.87 4.10 6 0.8293 8.03 6.02 5.85 8 0.3758 16.33 8.75 7.85
16 11 0.1169 4.98 7.11 5.37 7 0.2824 9.29 6.54 6.54 11 0.0581 15.85 10.51 10.48
20 14 0.0304 4.91 7.15 5.38 8 0.1197 10.34 7.48 7.38 14 0.0131 18.97 12.90 13.81

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
42.72 21.17 7.75
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1566 14.61 13.14 17.68 4 3.3462 7.00 4.73 4.54 5 2.4515 9.44 6.35 6.29
12 9 0.3146 22.75 19.28 18.61 5 1.0310 9.08 5.28 5.28 8 0.4244 14.18 10.47 10.09
16 11 0.0456 34.23 26.44 18.14 6 0.4035 12.54 7.54 10.14 11 0.0776 25.03 16.08 18.21
20 14 0.0066 67.06 71.22 22.08 7 0.1879 16.89 13.46 13.84 14 0.0153 29.43 24.60 25.78
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7234 3.64 4.22 4.24 5 3.0448 7.91 5.67 5.67 5 2.3208 12.10 6.36 6.41
12 8 0.5407 3.67 5.71 4.50 6 0.8244 10.14 6.86 6.87 8 0.3758 19.51 10.93 10.87
16 11 0.1174 8.31 10.75 9.23 7 0.2885 14.15 17.63 13.66 11 0.0641 24.20 14.11 14.90
20 14 0.0276 14.97 17.52 13.72 8 0.1185 18.67 16.33 16.04 14 0.0120 29.82 19.63 20.87

GCC 14, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
60.45 31.64 16.78
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1546 26.99 41.40 36.24 4 3.3200 12.44 16.15 15.94 5 2.4144 16.14 20.38 20.41
12 9 0.3118 36.83 63.22 39.11 5 1.0423 17.49 19.42 19.24 8 0.4200 21.28 26.68 26.74
16 11 0.0453 44.34 77.07 37.99 6 0.3972 17.27 18.53 18.44 11 0.0783 28.85 33.14 33.17
20 14 0.0062 56.32 96.18 37.40 7 0.1886 18.18 18.79 18.80 14 0.0149 35.08 37.55 37.60
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7635 10.47 13.51 13.51 5 3.0523 16.04 19.70 19.71 5 2.3168 30.46 22.05 22.03
12 8 0.5186 12.79 16.47 15.86 6 0.8142 15.90 18.64 18.63 8 0.3742 39.29 28.91 28.95
16 11 0.1230 14.46 19.39 19.44 7 0.2784 18.00 18.55 18.25 11 0.0667 63.69 45.78 45.76
20 14 0.0297 24.06 25.48 25.46 8 0.1259 18.87 19.93 20.01 14 0.0106 77.58 55.33 55.43

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
70.95 105.15 20.64
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1489 27.37 42.56 39.18 4 3.3441 12.75 16.07 16.16 5 2.4525 16.47 20.59 20.60
12 9 0.3184 35.79 60.85 39.98 5 1.0317 17.21 19.65 19.32 8 0.4209 21.12 25.23 25.22
16 11 0.0455 42.76 74.18 38.20 6 0.4015 17.07 18.63 18.51 11 0.0783 28.49 33.12 33.05
20 14 0.0068 56.35 94.82 37.71 7 0.1883 18.23 20.63 19.39 14 0.0158 35.37 38.90 38.03
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7396 10.70 13.75 13.75 5 3.0511 16.27 19.85 19.84 5 2.3280 32.84 22.53 22.54
12 8 0.5422 12.54 16.42 15.51 6 0.8206 15.98 18.79 18.73 8 0.3751 40.09 29.09 29.09
16 11 0.1202 14.48 19.03 18.86 7 0.2865 17.82 18.57 18.21 11 0.0645 64.62 46.88 47.00
20 14 0.0284 24.97 26.53 26.43 8 0.1200 19.78 20.50 21.89 14 0.0117 80.73 57.19 57.74

Clang 18, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
63.35 12.85 8.42
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1546 13.79 23.09 26.61 4 3.3200 9.52 12.32 12.32 5 2.4144 12.76 16.04 16.07
12 9 0.3118 19.52 35.45 29.33 5 1.0423 12.18 14.05 14.10 8 0.4200 17.27 22.42 22.50
16 11 0.0453 24.79 47.45 30.11 6 0.3972 13.61 15.46 15.48 11 0.0783 24.12 32.21 32.17
20 14 0.0062 32.38 60.76 30.32 7 0.1886 14.55 16.32 16.31 14 0.0149 30.20 37.11 37.12
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7635 7.01 9.38 9.43 5 3.0523 11.77 13.93 13.90 5 2.3168 13.28 16.78 16.80
12 8 0.5186 12.01 14.01 13.99 6 0.8142 13.54 15.36 15.37 8 0.3742 17.84 22.51 22.49
16 11 0.1230 13.85 17.63 17.65 7 0.2784 14.64 16.79 16.79 11 0.0667 25.68 30.86 30.88
20 14 0.0297 17.16 22.06 22.04 8 0.1259 15.92 17.89 17.92 14 0.0106 32.99 35.89 35.86

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
76.52 46.98 11.22
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1489 14.13 22.90 28.42 4 3.3441 9.66 12.56 12.57 5 2.4525 13.08 16.66 16.63
12 9 0.3184 19.24 34.63 29.95 5 1.0317 11.87 13.73 13.73 8 0.4209 16.79 21.53 21.86
16 11 0.0455 24.16 47.07 30.23 6 0.4015 13.44 14.81 14.81 11 0.0783 23.77 32.84 32.80
20 14 0.0068 31.80 61.99 32.96 7 0.1883 14.52 15.78 15.79 14 0.0158 29.90 36.89 36.85
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7396 7.18 9.45 9.43 5 3.0511 11.85 13.93 13.96 5 2.3280 13.28 17.57 17.54
12 8 0.5422 11.14 13.81 13.78 6 0.8206 13.23 14.84 14.84 8 0.3751 17.78 21.72 21.62
16 11 0.1202 12.98 16.48 16.49 7 0.2865 14.21 16.15 16.14 11 0.0645 25.49 30.99 30.97
20 14 0.0284 16.36 21.40 21.20 8 0.1200 15.47 17.48 17.37 14 0.0117 33.09 35.25 35.27

VS 2022, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
41.22 8.59 6.65
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1546 54.75 52.12 36.05 4 3.3200 18.16 17.29 20.45 5 2.4144 20.03 39.81 39.84
12 9 0.3118 84.16 78.93 39.84 5 1.0423 20.41 18.90 21.17 8 0.4200 24.69 58.63 56.42
16 11 0.0453 104.63 96.29 38.40 6 0.3972 21.36 19.13 20.41 11 0.0783 36.12 77.54 77.55
20 14 0.0062 133.40 121.47 40.22 7 0.1886 23.58 20.59 21.16 14 0.0149 41.73 92.56 92.80
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7253 16.25 23.51 23.54 5 3.0523 21.58 22.40 24.79 5 2.3168 22.79 40.44 40.66
12 8 0.5350 16.01 32.46 23.64 6 0.8142 23.87 23.78 25.72 8 0.3742 29.21 57.02 57.46
16 11 0.1194 26.57 54.34 38.86 7 0.2784 25.90 26.06 26.83 11 0.0667 41.72 76.35 80.32
20 14 0.0262 24.90 52.46 36.10 8 0.1259 27.07 28.90 28.84 14 0.0106 46.92 91.32 92.90

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
72.10 37.97 12.33
filter<K> filter<1,block<uint64_t,K>> filter<1,multiblock<uint64_t,K>>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 6 2.1489 62.34 58.38 40.30 4 3.3441 19.65 18.14 22.61 5 2.4525 21.97 40.46 40.54
12 9 0.3184 92.12 85.21 42.88 5 1.0317 22.54 19.37 22.17 8 0.4209 28.29 60.70 58.44
16 11 0.0455 126.02 112.02 42.81 6 0.4015 24.71 20.76 22.53 11 0.0783 40.41 80.19 80.73
20 14 0.0068 189.29 178.77 51.51 7 0.1883 35.39 31.14 27.76 14 0.0158 48.01 101.07 100.26
filter<K,fast_multiblock32<K>> filter<1,block<uint64_t, K>,1> filter<1,multiblock<uint64_t,K>,1>
c K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
K FPR
[%]
ins. succ.
lkp.
uns.
lkp.
8 5 2.7254 16.75 28.26 28.33 5 3.0511 23.65 24.11 27.79 5 2.3280 25.11 41.32 41.89
12 8 0.5375 16.44 38.08 28.25 6 0.8206 26.18 28.15 28.92 8 0.3751 32.75 60.15 61.44
16 11 0.1187 30.70 65.50 52.84 7 0.2865 29.67 30.37 35.90 11 0.0645 47.27 80.35 82.28
20 14 0.0287 37.10 76.31 56.65 8 0.1200 38.82 38.11 39.40 14 0.0117 55.28 100.23 99.93
Description
Mirrored via gitea-mirror
Readme 2.6 MiB
Languages
Python 68.8%
Shell 31.2%