2025-03-04 11:59:50 +00:00
2025-03-04 12:47:51 +01:00
2025-03-04 11:55:42 +00:00
2025-03-04 11:52:27 +00:00
2025-03-04 11:54:33 +00:00
2025-03-04 11:52:54 +00:00
2025-03-04 11:56:21 +00:00
2025-03-04 11:54:16 +00:00
2025-03-04 11:59:50 +00:00
2025-03-03 11:38:47 +01:00
2025-03-04 11:45:20 +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
27.17 4.37 3.89
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 11.61 11.49 16.95 4 3.3525 4.13 4.24 4.34 5 2.4274 6.03 5.79 5.79
12 9 0.3151 18.36 15.54 17.49 5 1.0369 4.94 4.94 4.92 8 0.4244 7.05 8.87 8.87
16 11 0.0455 21.78 18.59 16.56 6 0.4138 5.47 5.38 5.51 11 0.0782 10.27 14.02 13.91
20 14 0.0084 27.37 23.93 16.90 7 0.1936 6.23 6.14 6.00 14 0.0163 12.45 15.85 15.76
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.7421 4.31 5.37 5.37 5 3.0203 4.90 5.08 5.06 5 2.3232 6.19 5.79 5.78
12 8 0.5384 3.79 4.84 4.84 6 0.8293 5.52 5.55 5.55 8 0.3758 11.13 9.06 9.12
16 11 0.1163 7.38 7.29 6.20 7 0.2824 6.38 6.33 6.35 11 0.0581 11.26 11.80 11.77
20 14 0.0286 7.79 8.40 6.23 8 0.1197 6.68 6.75 6.73 14 0.0131 13.51 14.99 14.89

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
35.11 19.80 11.68
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.90 13.24 18.27 4 3.3462 5.02 5.20 5.16 5 2.4515 7.54 7.03 7.20
12 9 0.3146 34.67 31.90 21.68 5 1.0310 11.76 11.31 10.43 8 0.4244 22.87 20.04 13.34
16 11 0.0456 68.01 71.94 27.74 6 0.4035 18.71 18.50 18.13 11 0.0776 30.93 27.94 29.36
20 14 0.0066 100.59 98.15 29.37 7 0.1879 24.40 23.09 23.18 14 0.0153 46.88 43.02 41.05
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.7269 5.55 7.06 7.22 5 3.0448 6.08 6.39 6.75 5 2.3208 8.60 6.88 7.74
12 8 0.5394 9.93 10.26 10.54 6 0.8244 11.79 12.20 9.95 8 0.3758 28.02 25.74 20.13
16 11 0.1161 28.53 25.08 20.52 7 0.2885 19.92 22.27 17.65 11 0.0641 25.87 31.92 35.96
20 14 0.0287 31.97 31.96 18.84 8 0.1185 26.31 23.97 22.99 14 0.0120 42.45 40.92 40.61

Clang 18, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
26.79 4.64 3.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.1635 9.29 8.97 15.47 4 3.3525 3.31 3.94 3.94 5 2.4274 5.81 6.02 6.24
12 9 0.3151 13.12 14.19 16.90 5 1.0369 3.85 4.57 4.59 8 0.4244 8.88 9.24 9.24
16 11 0.0455 17.56 16.65 15.45 6 0.4138 4.37 5.08 5.08 11 0.0782 10.84 13.45 13.40
20 14 0.0084 20.38 21.10 16.09 7 0.1936 4.82 5.68 5.87 14 0.0163 14.29 13.82 13.87
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.7421 3.58 3.98 3.98 5 3.0203 3.87 4.59 4.56 5 2.3232 5.07 6.20 5.87
12 8 0.5384 2.93 3.71 3.71 6 0.8293 4.50 5.34 5.33 8 0.3758 7.58 9.12 9.10
16 11 0.1163 5.45 5.95 4.45 7 0.2824 4.93 6.00 6.00 11 0.0581 10.04 14.01 13.97
20 14 0.0286 6.27 6.93 4.47 8 0.1197 5.41 6.58 6.45 14 0.0131 14.69 15.31 15.34

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
33.92 17.39 6.49
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 10.59 9.90 15.97 4 3.3462 3.60 4.28 4.28 5 2.4515 6.60 6.75 7.11
12 9 0.3146 14.61 14.85 17.14 5 1.0310 4.79 4.78 4.77 8 0.4244 9.56 9.67 9.67
16 11 0.0456 19.09 20.72 16.39 6 0.4035 6.04 5.87 6.24 11 0.0776 12.34 15.48 16.50
20 14 0.0066 49.41 51.57 20.11 7 0.1879 13.21 14.63 14.74 14 0.0153 25.35 30.02 30.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.7269 3.99 4.37 4.38 5 3.0448 4.31 4.99 4.94 5 2.3208 5.62 6.64 6.62
12 8 0.5394 3.25 4.16 4.07 6 0.8244 5.30 7.02 6.78 8 0.3758 8.71 10.60 9.97
16 11 0.1161 11.91 17.86 12.29 7 0.2885 7.36 8.32 8.53 11 0.0641 12.54 17.96 16.65
20 14 0.0287 10.35 17.68 11.12 8 0.1185 12.24 15.56 14.43 14 0.0120 27.41 24.82 26.40

Clang 15, ARM64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
23.55 4.33 4.18
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 7.45 5.02 12.48 4 3.3525 1.54 1.30 1.30 5 2.4274 2.45 1.87 1.84
12 9 0.3151 10.73 7.16 13.05 5 1.0369 1.56 1.51 1.50 8 0.4244 2.45 4.81 2.22
16 11 0.0455 14.76 9.33 11.08 6 0.4138 1.93 1.60 1.95 11 0.0782 4.37 2.96 3.14
20 14 0.0084 20.89 12.56 12.94 7 0.1936 2.05 2.11 2.05 14 0.0163 5.20 4.20 3.68
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.20 1.87 1.85 5 3.0203 1.66 1.39 1.40 5 2.3232 2.43 1.91 1.90
12 8 0.5360 1.66 1.52 1.69 6 0.8293 2.24 1.52 1.56 8 0.3758 3.61 2.56 2.45
16 11 0.1169 3.42 2.74 2.27 7 0.2824 2.94 2.14 1.88 11 0.0581 4.70 3.45 3.74
20 14 0.0304 4.25 3.75 2.31 8 0.1197 2.56 1.93 2.07 14 0.0131 5.53 5.11 5.65

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
32.41 20.04 13.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 17.26 16.89 25.83 4 3.3462 4.49 4.32 4.75 5 2.4515 3.94 4.07 5.40
12 9 0.3146 28.06 26.67 22.93 5 1.0310 6.14 4.72 6.88 8 0.4244 7.26 8.38 4.84
16 11 0.0456 51.01 43.58 23.10 6 0.4035 10.19 8.52 8.40 11 0.0776 16.21 13.49 14.83
20 14 0.0066 69.78 50.41 24.74 7 0.1879 11.73 9.99 9.73 14 0.0153 20.60 18.50 17.99
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 2.51 4.07 3.00 5 3.0448 2.48 3.06 3.32 5 2.3208 4.37 4.95 4.52
12 8 0.5407 7.47 6.65 6.18 6 0.8244 5.93 5.93 6.03 8 0.3758 7.95 9.25 8.35
16 11 0.1174 9.19 9.93 7.27 7 0.2885 9.83 9.49 8.30 11 0.0641 15.85 13.42 12.18
20 14 0.0276 11.69 13.76 8.35 8 0.1185 9.88 7.41 8.19 14 0.0120 20.44 17.85 19.87

VS 2022, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
36.83 6.14 3.71
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.18 12.67 17.16 4 3.3525 5.83 4.21 4.18 5 2.4274 7.88 5.63 5.58
12 9 0.3151 18.45 17.76 17.50 5 1.0369 6.89 4.87 4.75 8 0.4244 11.57 8.53 8.44
16 11 0.0455 23.75 21.59 16.89 6 0.4138 8.56 5.32 5.43 11 0.0782 15.18 11.12 10.98
20 14 0.0084 31.12 27.12 17.54 7 0.1936 9.91 5.94 5.92 14 0.0163 18.09 14.39 14.25
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.39 3.96 3.92 5 3.0203 7.03 5.27 5.37 5 2.3232 9.11 5.70 5.67
12 8 0.5360 2.89 4.86 4.07 6 0.8293 8.03 6.11 5.92 8 0.3758 16.54 8.80 8.00
16 11 0.1169 5.02 7.14 5.48 7 0.2824 9.34 6.95 6.74 11 0.0581 16.89 10.57 10.50
20 14 0.0304 5.13 7.14 5.37 8 0.1197 10.56 7.45 7.47 14 0.0131 19.41 12.95 13.73

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
47.58 22.88 10.63
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.62 13.25 17.74 4 3.3462 7.06 4.50 4.60 5 2.4515 9.41 6.37 6.30
12 9 0.3146 22.95 19.53 18.70 5 1.0310 9.29 5.35 5.64 8 0.4244 15.57 10.85 10.56
16 11 0.0456 35.13 37.66 20.01 6 0.4035 14.99 9.29 9.89 11 0.0776 33.62 24.67 26.31
20 14 0.0066 89.93 85.97 25.04 7 0.1879 21.93 19.97 20.49 14 0.0153 42.51 23.73 22.98
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.70 4.25 4.29 5 3.0448 7.90 5.63 5.70 5 2.3208 9.54 6.35 6.39
12 8 0.5407 3.61 5.52 4.82 6 0.8244 10.32 6.74 6.75 8 0.3758 20.02 10.32 9.80
16 11 0.1174 8.08 13.60 9.04 7 0.2885 14.75 10.96 11.30 11 0.0641 24.88 15.30 15.25
20 14 0.0276 14.01 19.53 15.17 8 0.1185 23.09 20.97 21.71 14 0.0120 37.75 23.15 25.74

GCC 14, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
64.61 51.30 15.94
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 27.14 41.38 35.67 4 3.3200 12.56 15.96 15.99 5 2.4144 16.26 20.59 20.54
12 9 0.3118 37.20 64.10 39.24 5 1.0423 17.36 19.50 19.30 8 0.4200 21.46 26.90 26.79
16 11 0.0453 45.09 78.27 38.32 6 0.3972 17.40 18.65 18.53 11 0.0783 29.09 33.23 33.23
20 14 0.0062 57.19 97.45 37.60 7 0.1886 18.26 18.88 18.86 14 0.0149 35.42 37.94 37.91
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.64 13.91 13.67 5 3.0523 16.18 19.78 19.75 5 2.3168 30.70 22.28 22.28
12 8 0.5186 12.89 16.66 16.08 6 0.8142 16.16 18.66 18.69 8 0.3742 39.93 29.09 29.03
16 11 0.1230 14.56 19.58 19.52 7 0.2784 18.20 18.70 18.36 11 0.0667 64.24 46.07 46.04
20 14 0.0297 24.20 25.76 25.71 8 0.1259 19.04 20.05 20.14 14 0.0106 78.09 55.67 55.73

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
96.54 119.74 30.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 29.05 49.22 45.62 4 3.3441 15.74 23.04 23.92 5 2.4525 27.99 33.48 33.36
12 9 0.3184 68.20 127.36 71.26 5 1.0317 42.24 43.20 45.22 8 0.4209 50.24 55.00 53.34
16 11 0.0455 135.68 256.20 95.43 6 0.4015 50.56 56.06 53.00 11 0.0783 87.09 102.33 103.66
20 14 0.0068 227.04 388.26 113.93 7 0.1883 53.83 54.38 54.11 14 0.0158 98.18 109.46 111.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.7396 12.49 19.09 21.02 5 3.0511 23.81 28.59 28.67 5 2.3280 60.73 35.99 35.92
12 8 0.5422 28.53 36.43 35.21 6 0.8206 41.50 41.60 42.68 8 0.3751 110.43 64.57 64.08
16 11 0.1202 49.01 55.78 55.03 7 0.2865 52.72 52.60 53.38 11 0.0645 116.13 109.66 109.43
20 14 0.0284 65.95 95.28 94.12 8 0.1200 56.88 56.89 57.53 14 0.0117 149.86 126.96 126.37

Clang 18, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
63.08 10.30 7.45
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.80 22.74 26.69 4 3.3200 9.54 12.44 12.44 5 2.4144 12.79 16.02 16.07
12 9 0.3118 19.70 35.17 29.18 5 1.0423 12.22 14.15 14.16 8 0.4200 17.34 22.44 22.59
16 11 0.0453 25.17 47.33 29.93 6 0.3972 13.73 15.39 15.50 11 0.0783 24.02 32.27 32.23
20 14 0.0062 32.70 60.48 30.41 7 0.1886 14.55 16.37 16.36 14 0.0149 30.34 37.00 36.99
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.02 9.50 9.39 5 3.0523 11.78 13.91 13.89 5 2.3168 13.30 16.74 16.77
12 8 0.5186 11.27 14.01 13.97 6 0.8142 13.51 15.42 15.39 8 0.3742 17.85 22.37 22.34
16 11 0.1230 13.65 17.54 17.53 7 0.2784 14.66 16.83 16.79 11 0.0667 25.64 30.93 30.94
20 14 0.0297 17.10 21.94 22.07 8 0.1259 16.00 17.92 17.89 14 0.0106 33.14 35.89 35.77

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
97.82 54.97 20.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.1489 14.42 23.27 28.65 4 3.3441 9.95 13.88 13.23 5 2.4525 13.55 18.61 18.44
12 9 0.3184 23.07 48.49 35.49 5 1.0317 14.75 24.05 17.47 8 0.4209 22.37 28.84 29.83
16 11 0.0455 32.35 61.33 33.24 6 0.4015 20.76 26.86 20.57 11 0.0783 34.27 48.97 49.48
20 14 0.0068 113.24 135.61 48.84 7 0.1883 34.59 29.36 30.89 14 0.0158 71.08 69.21 67.24
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.47 9.79 9.62 5 3.0511 12.15 14.39 14.45 5 2.3280 13.95 18.78 20.13
12 8 0.5422 12.70 17.41 18.40 6 0.8206 24.41 21.57 22.42 8 0.3751 32.17 41.93 37.30
16 11 0.1202 32.96 41.41 36.36 7 0.2865 34.70 40.75 43.95 11 0.0645 71.59 75.01 74.48
20 14 0.0284 57.32 63.57 62.13 8 0.1200 51.11 51.77 45.25 14 0.0117 85.41 68.63 69.16

VS 2022, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
43.09 8.95 6.68
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 55.37 52.20 36.14 4 3.3200 18.07 17.29 20.49 5 2.4144 20.24 39.72 39.83
12 9 0.3118 85.07 79.78 40.00 5 1.0423 20.36 18.90 21.13 8 0.4200 24.82 58.69 56.56
16 11 0.0453 105.92 96.88 38.37 6 0.3972 21.43 19.11 20.48 11 0.0783 36.43 77.55 77.79
20 14 0.0062 134.93 121.88 39.71 7 0.1886 23.77 20.54 21.27 14 0.0149 41.93 92.64 92.91
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.24 23.65 23.61 5 3.0523 21.72 22.23 24.98 5 2.3168 23.31 40.37 40.82
12 8 0.5350 16.14 32.67 24.03 6 0.8142 23.76 23.81 25.21 8 0.3742 29.08 56.98 57.64
16 11 0.1194 26.52 54.62 38.82 7 0.2784 25.90 26.21 27.25 11 0.0667 41.71 76.66 80.26
20 14 0.0262 24.98 52.72 36.45 8 0.1259 27.60 28.92 29.39 14 0.0106 47.35 91.76 93.06

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
68.09 37.76 13.99
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 63.64 57.04 40.68 4 3.3441 23.65 18.06 22.43 5 2.4525 25.17 40.94 45.98
12 9 0.3184 97.70 89.83 45.65 5 1.0317 38.02 22.66 24.97 8 0.4209 47.64 64.61 77.31
16 11 0.0455 176.14 137.71 51.59 6 0.4015 47.24 27.32 30.91 11 0.0783 47.44 99.43 98.86
20 14 0.0068 400.11 350.03 90.18 7 0.1883 65.71 40.52 40.27 14 0.0158 64.10 114.28 115.92
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 19.92 32.36 35.79 5 3.0511 25.89 25.99 28.78 5 2.3280 30.86 45.79 50.76
12 8 0.5375 20.13 49.62 39.14 6 0.8206 37.51 35.58 35.14 8 0.3751 40.69 71.16 70.12
16 11 0.1187 42.57 90.03 72.46 7 0.2865 42.73 47.58 33.01 11 0.0645 46.99 80.48 83.60
20 14 0.0287 38.57 89.90 84.55 8 0.1200 65.80 72.10 90.58 14 0.0117 73.05 124.20 137.58
Description
Mirrored via gitea-mirror
Readme 2.6 MiB
Languages
Python 68.8%
Shell 31.2%