Skip to content

boostorg/boost_bloom_benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experimental results for Boost Bloom Library

The tables show the false positive rate (FPR) and execution times in nanoseconds per operation for several 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 (-march=native), which causes fast_multiblock32 and fast_multiblock64 to use their 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
38.54 6.14 4.27
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1303 11.07 12.08 18.09 4 3.3706 4.00 4.60 4.60 5 3.0229 4.41 5.06 5.06
12 9 0.3077 16.62 18.01 19.25 5 1.0495 4.40 5.17 5.18 6 0.8320 5.01 5.55 5.55
16 11 0.0447 20.35 21.57 18.15 6 0.4212 5.03 5.64 5.65 7 0.2916 5.56 6.03 6.02
20 14 0.0063 24.39 27.73 18.54 7 0.1954 5.39 5.97 5.97 8 0.1209 5.83 6.31 6.30
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4608 5.02 5.65 5.65 5 2.2909 5.51 6.98 6.98 5 2.7470 3.24 2.96 2.96
12 8 0.4110 5.85 9.25 9.26 8 0.3808 7.02 9.66 9.66 8 0.5416 2.70 2.75 2.76
16 11 0.0737 9.13 11.77 11.67 11 0.0614 19.12 13.67 13.69 11 0.1157 5.79 5.86 4.19
20 13 0.0152 10.37 12.73 12.74 14 0.0112 11.66 15.14 15.14 13 0.0268 5.83 5.89 4.18
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4821 3.18 2.78 2.78 5 2.4383 4.65 4.82 4.82 5 2.2971 4.79 4.61 4.60
12 8 0.4308 3.34 2.84 2.86 8 0.4183 3.49 4.18 4.18 8 0.3720 4.82 4.72 4.73
16 11 0.0894 5.55 5.66 3.89 11 0.0788 7.67 8.23 6.16 11 0.0680 7.86 7.98 6.15
20 13 0.0150 5.60 5.68 3.91 13 0.0136 8.49 9.42 6.28 14 0.0150 8.63 9.20 6.14
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3151 6.41 7.34 14.49 6 2.3015 11.76 8.84 18.90 7 2.3446 10.16 11.10 10.79
12 7 0.4171 8.78 10.40 14.41 7 0.3864 12.54 10.53 16.14 10 0.3486 14.04 13.94 14.36
16 9 0.0818 10.66 11.93 14.09 10 0.0709 14.93 12.94 17.33 11 0.0515 15.18 16.13 16.13
20 12 0.0222 12.88 14.38 14.78 12 0.0150 16.62 15.18 16.81 15 0.0062 20.73 21.09 21.04

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
58.41 23.48 14.39
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1519 14.04 15.82 20.84 4 3.3467 5.82 6.50 6.54 5 3.0383 5.46 6.13 6.15
12 9 0.3180 47.65 52.28 27.38 5 1.0300 10.07 10.98 10.98 6 0.8268 11.52 12.52 12.49
16 11 0.0469 83.25 99.75 34.96 6 0.4034 18.34 18.38 18.39 7 0.2883 18.97 19.08 19.08
20 14 0.0065 125.12 135.16 39.56 7 0.1887 21.87 21.99 21.99 8 0.1194 22.85 25.21 25.17
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4510 6.42 7.10 7.12 5 2.3157 7.23 8.98 8.96 5 2.7361 5.90 5.67 5.70
12 8 0.4207 13.45 17.14 17.16 8 0.3724 16.49 20.61 20.65 8 0.5415 7.63 7.92 7.97
16 11 0.0764 29.25 30.26 30.26 11 0.0642 34.90 35.52 35.29 11 0.1179 19.11 20.64 14.95
20 13 0.0150 38.40 39.18 39.20 14 0.0122 40.68 50.85 50.24 13 0.0275 22.00 23.66 16.68
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4788 4.24 3.92 3.96 5 2.4546 5.59 5.86 5.89 5 2.3234 5.97 6.01 5.92
12 8 0.4394 8.19 8.03 8.03 8 0.4210 8.75 9.69 9.74 8 0.3754 11.13 12.23 12.20
16 11 0.0865 18.60 20.34 14.59 11 0.0781 24.65 25.86 21.31 11 0.0642 23.72 26.12 21.53
20 13 0.0178 21.80 23.56 16.42 13 0.0160 31.93 36.25 24.75 14 0.0110 31.64 36.52 25.04
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3292 7.58 8.62 15.62 6 2.2986 13.07 10.80 20.72 7 2.3389 15.28 15.27 15.29
12 7 0.4140 17.22 18.44 18.84 7 0.3845 22.19 21.28 20.79 10 0.3468 26.63 28.35 28.33
16 9 0.0852 27.39 27.86 21.79 10 0.0714 35.48 33.83 26.65 11 0.0493 45.00 49.14 49.05
20 12 0.0196 41.61 42.34 24.90 12 0.0152 50.90 50.31 28.79 15 0.0076 74.41 73.92 73.83

Clang 18, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
25.97 5.94 4.27
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1303 10.36 10.83 18.29 4 3.3706 4.06 4.10 4.08 5 3.0229 4.06 4.60 4.59
12 9 0.3077 15.71 16.08 18.74 5 1.0495 4.60 4.69 4.69 6 0.8320 4.57 5.26 5.26
16 11 0.0447 18.74 19.88 17.47 6 0.4212 4.99 5.30 5.29 7 0.2916 4.93 5.73 5.72
20 14 0.0063 23.39 24.18 18.01 7 0.1954 5.42 5.74 5.74 8 0.1209 3.31 3.45 3.43
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4608 3.28 3.90 3.91 5 2.2909 3.37 3.68 3.70 5 2.7470 2.92 2.68 2.69
12 8 0.4110 3.35 4.81 4.81 8 0.3808 4.06 4.94 4.94 8 0.5416 2.78 2.50 2.50
16 11 0.0737 5.80 7.74 7.73 11 0.0614 5.98 7.46 7.36 11 0.1157 4.41 4.50 3.34
20 13 0.0152 6.18 8.21 8.23 14 0.0112 6.96 8.38 8.24 13 0.0268 4.46 4.49 3.33
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4821 2.85 2.48 2.48 5 2.4383 3.88 4.18 4.17 5 2.2971 4.06 4.01 4.01
12 8 0.4308 2.95 2.53 2.53 8 0.4183 3.50 3.89 3.89 8 0.3720 4.24 4.12 4.11
16 11 0.0894 4.50 4.21 3.17 11 0.0788 5.63 5.98 5.18 11 0.0680 6.00 6.08 4.92
20 13 0.0150 4.51 4.24 3.14 13 0.0136 6.94 7.27 5.27 14 0.0150 7.24 7.02 5.04
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3151 6.32 6.67 13.76 6 2.3015 12.70 7.88 18.08 7 2.3446 10.39 10.55 10.54
12 7 0.4171 9.62 9.07 13.46 7 0.3864 14.53 9.28 15.41 10 0.3486 14.74 13.96 13.83
16 9 0.0818 12.01 10.66 13.54 10 0.0709 15.54 11.97 16.38 11 0.0515 15.86 16.17 15.04
20 12 0.0222 14.30 13.36 13.94 12 0.0150 17.15 13.62 15.78 15 0.0062 21.63 21.10 21.06

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
52.13 23.68 14.51
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1519 13.57 14.12 20.85 4 3.3467 5.65 5.67 5.63 5 3.0383 5.42 6.03 5.98
12 9 0.3180 47.85 49.49 26.49 5 1.0300 11.03 10.97 10.98 6 0.8268 10.64 11.56 11.58
16 11 0.0469 83.54 85.35 31.09 6 0.4034 17.89 17.95 17.96 7 0.2883 17.23 19.07 19.08
20 14 0.0065 120.39 119.09 36.47 7 0.1887 21.98 21.72 21.72 8 0.1194 14.71 15.30 15.26
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4510 4.32 5.17 5.21 5 2.3157 4.10 4.63 4.66 5 2.7361 3.56 3.45 3.44
12 8 0.4207 8.83 10.55 10.56 8 0.3724 9.91 12.46 12.52 8 0.5415 7.85 7.54 7.54
16 11 0.0764 19.62 22.72 22.75 11 0.0642 19.05 22.93 22.92 11 0.1179 15.19 16.32 12.45
20 13 0.0150 23.87 29.73 29.79 14 0.0122 24.92 30.80 30.80 13 0.0275 17.36 18.34 13.99
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4788 3.72 3.38 3.36 5 2.4546 4.76 5.07 5.02 5 2.3234 5.27 5.37 5.25
12 8 0.4394 7.60 7.58 7.56 8 0.4210 8.66 9.24 9.27 8 0.3754 10.28 11.52 11.58
16 11 0.0865 14.43 16.09 11.92 11 0.0781 20.19 21.55 17.22 11 0.0642 18.83 21.05 16.85
20 13 0.0178 16.64 18.26 13.45 13 0.0160 25.12 29.48 20.08 14 0.0110 25.37 26.90 19.62
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3292 7.67 7.97 15.08 6 2.2986 13.91 10.27 19.76 7 2.3389 13.83 13.87 13.86
12 7 0.4140 17.06 15.61 17.52 7 0.3845 25.80 21.21 20.63 10 0.3468 31.17 32.58 32.61
16 9 0.0852 28.89 26.74 21.75 10 0.0714 36.21 32.66 24.97 11 0.0493 45.58 48.10 47.96
20 12 0.0196 43.30 35.81 24.25 12 0.0152 52.38 40.08 26.46 15 0.0076 78.06 72.34 72.55

Clang 15, ARM64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
18.66 2.44 1.98
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1303 6.34 4.16 11.42 4 3.3706 1.32 1.23 1.23 5 3.0229 1.61 1.28 1.28
12 9 0.3077 9.41 6.06 11.99 5 1.0495 1.42 1.42 1.41 6 0.8320 1.68 1.41 1.41
16 11 0.0447 11.59 7.31 11.21 6 0.4212 1.60 1.63 1.64 7 0.2916 1.74 1.58 1.60
20 14 0.0063 15.01 9.39 11.46 7 0.1954 1.80 1.80 1.80 8 0.1209 1.79 1.57 1.57
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4608 2.28 1.75 1.68 5 2.2909 2.25 1.74 1.74 5 2.7470 2.01 1.68 1.68
12 8 0.4110 2.17 1.84 1.84 8 0.3808 2.79 2.13 2.13 8 0.5416 1.50 1.38 1.38
16 11 0.0737 4.09 2.90 2.89 11 0.0614 4.03 3.00 3.00 11 0.1157 2.88 2.38 1.74
20 13 0.0152 4.49 3.36 3.37 14 0.0112 4.78 3.58 3.61 13 0.0268 2.99 2.92 1.73
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4821 2.02 1.70 1.69 5 2.4608 2.23 1.74 1.70 5 2.2909 2.28 1.75 1.75
12 8 0.4308 2.05 1.59 1.60 8 0.4110 2.19 1.86 1.87 8 0.3808 2.79 2.15 2.15
16 11 0.0894 2.87 2.39 1.75 11 0.0737 4.07 2.90 2.91 11 0.0614 4.05 3.03 3.02
20 13 0.0150 2.97 2.88 1.73 13 0.0152 4.54 3.37 3.37 14 0.0112 4.79 3.61 3.60
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3151 3.23 3.28 10.23 6 2.3015 6.98 3.90 12.75 7 2.3446 7.71 4.89 4.88
12 7 0.4171 4.39 4.38 10.02 7 0.3864 7.45 4.56 10.57 10 0.3486 10.93 6.82 6.78
16 9 0.0818 5.48 5.24 9.74 10 0.0709 8.54 5.77 11.29 11 0.0515 12.04 7.57 7.55
20 12 0.0222 7.05 6.33 10.25 12 0.0150 9.43 6.38 10.80 15 0.0062 17.17 10.67 10.67

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
23.36 10.90 5.73
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1519 7.75 6.16 12.93 4 3.3467 2.05 1.99 2.00 5 3.0383 2.13 2.02 2.04
12 9 0.3180 13.15 11.04 16.16 5 1.0300 3.50 3.47 3.49 6 0.8268 3.22 3.16 3.09
16 11 0.0469 30.88 24.03 18.38 6 0.4034 6.66 6.31 6.56 7 0.2883 6.92 5.98 5.87
20 14 0.0065 53.83 40.29 20.91 7 0.1887 9.13 7.94 7.86 8 0.1194 7.69 6.46 6.74
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4510 2.70 2.48 2.56 5 2.3157 2.70 2.59 2.58 5 2.7361 2.38 2.49 2.50
12 8 0.4207 3.76 4.62 4.28 8 0.3724 4.31 4.64 4.53 8 0.5415 2.75 3.44 3.49
16 11 0.0764 10.95 9.92 9.78 11 0.0642 10.68 9.53 9.51 11 0.1179 8.69 8.41 5.77
20 13 0.0150 15.22 12.68 12.37 14 0.0122 14.96 12.90 12.72 13 0.0275 10.43 11.08 6.61
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4788 2.39 2.51 2.54 5 2.4510 2.72 2.51 2.55 5 2.3157 2.71 2.57 2.59
12 8 0.4394 2.94 3.10 3.03 8 0.4207 3.70 3.88 3.88 8 0.3724 4.26 4.68 4.39
16 11 0.0865 8.29 8.49 5.82 11 0.0764 10.94 9.88 9.73 11 0.0642 11.28 9.95 9.82
20 13 0.0178 10.41 10.88 6.60 13 0.0150 16.00 12.90 13.27 14 0.0122 15.77 13.47 13.55
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3292 4.64 4.30 11.29 6 2.2986 8.72 4.92 13.50 7 2.3389 8.87 6.65 6.71
12 7 0.4140 9.37 8.45 13.03 7 0.3845 13.33 7.80 12.91 10 0.3468 14.57 12.25 12.16
16 9 0.0852 16.42 13.68 14.25 10 0.0714 21.98 15.88 16.60 11 0.0493 26.05 21.96 23.13
20 12 0.0196 23.13 17.52 15.45 12 0.0152 28.91 22.21 17.26 15 0.0076 49.71 38.19 39.07

VS 2022, x64

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
25.37 5.19 3.54
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1303 10.35 11.37 14.37 4 3.3706 3.84 3.61 3.60 5 3.0229 4.38 4.15 4.16
12 9 0.3077 15.11 16.16 14.76 5 1.0495 4.43 4.01 4.01 6 0.8320 5.02 4.72 4.68
16 11 0.0447 18.24 20.39 14.24 6 0.4212 5.05 4.38 4.35 7 0.2916 5.69 5.15 5.12
20 14 0.0063 22.89 25.11 14.41 7 0.1954 5.73 4.74 4.72 8 0.1209 6.28 5.55 5.55
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4608 5.41 4.31 4.31 5 2.2909 7.50 4.65 4.67 5 2.7470 2.85 2.19 2.19
12 8 0.4110 8.24 7.00 6.93 8 0.3808 12.70 7.07 7.03 8 0.5416 2.74 2.98 2.38
16 11 0.0737 10.62 9.16 9.05 11 0.0614 12.39 10.45 10.48 11 0.1157 4.28 4.46 3.11
20 13 0.0152 11.69 10.37 10.24 14 0.0112 13.81 12.29 12.14 13 0.0268 4.32 4.46 3.08
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4821 2.87 2.05 2.05 5 2.4383 3.73 3.27 3.27 5 2.2971 3.79 3.14 3.14
12 8 0.4308 3.25 3.37 2.73 8 0.4183 4.16 3.89 3.27 8 0.3720 5.68 4.62 3.92
16 11 0.0894 4.40 4.33 3.04 11 0.0788 7.95 6.39 5.00 11 0.0680 7.72 6.30 5.04
20 13 0.0150 4.40 4.34 3.00 13 0.0136 7.88 7.07 5.10 14 0.0150 8.02 6.85 5.07
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3151 7.07 6.73 11.22 6 2.3015 10.04 8.94 14.10 7 2.3446 10.12 8.88 8.93
12 7 0.4171 9.39 9.67 11.91 7 0.3864 11.77 11.21 13.21 10 0.3486 13.62 12.94 12.92
16 9 0.0818 11.39 11.40 11.76 10 0.0709 14.19 13.25 12.71 11 0.0515 15.52 15.35 15.31
20 12 0.0222 14.66 13.86 12.45 12 0.0150 16.37 15.18 12.34 15 0.0062 23.44 22.60 22.58

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
40.29 23.34 12.58
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1519 11.10 11.87 15.76 4 3.3467 4.21 3.84 3.79 5 3.0383 4.72 4.58 4.52
12 9 0.3180 18.05 18.04 16.58 5 1.0300 6.22 5.70 5.67 6 0.8268 7.09 6.91 6.79
16 11 0.0469 68.24 79.45 25.94 6 0.4034 16.32 13.98 13.97 7 0.2883 16.42 16.00 16.02
20 14 0.0065 102.36 117.69 31.08 7 0.1887 20.87 19.33 19.26 8 0.1194 20.70 22.48 22.55
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4510 6.10 4.69 4.60 5 2.3157 8.57 5.05 4.97 5 2.7361 3.17 2.40 2.31
12 8 0.4207 10.18 8.79 8.59 8 0.3724 14.85 9.56 9.29 8 0.5415 4.81 4.92 4.34
16 11 0.0764 26.70 23.24 23.54 11 0.0642 29.69 27.85 27.90 11 0.1179 14.92 16.50 11.60
20 13 0.0150 36.05 34.93 35.15 14 0.0122 39.81 38.16 38.14 13 0.0275 16.37 17.89 12.37
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4788 3.18 2.26 2.16 5 2.4546 4.08 3.48 3.43 5 2.3234 4.17 3.40 3.33
12 8 0.4394 5.21 5.56 4.70 8 0.4210 6.73 6.13 5.67 8 0.3754 7.65 6.64 5.69
16 11 0.0865 15.06 15.45 10.99 11 0.0781 23.17 18.49 15.69 11 0.0642 20.82 19.11 16.18
20 13 0.0178 16.74 17.88 12.32 13 0.0160 28.66 26.92 18.97 14 0.0110 28.58 26.87 19.11
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3292 7.72 7.43 11.95 6 2.2986 10.68 9.72 14.95 7 2.3389 11.52 10.03 10.06
12 7 0.4140 11.37 12.06 13.71 7 0.3845 14.52 13.96 14.46 10 0.3468 15.45 14.39 14.26
16 9 0.0852 25.26 25.52 19.68 10 0.0714 33.28 32.53 20.02 11 0.0493 41.18 40.24 40.31
20 12 0.0196 35.58 34.62 22.93 12 0.0152 42.87 41.63 22.03 15 0.0076 68.99 64.79 64.87

GCC 14, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
73.85 34.16 14.23
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1535 31.14 44.70 37.86 4 3.3223 13.35 16.23 16.25 5 3.0704 14.58 18.13 17.54
12 9 0.3124 47.03 67.46 40.60 5 1.0493 15.35 18.27 18.24 6 0.8146 16.08 19.11 19.07
16 11 0.0479 57.56 82.58 38.96 6 0.4013 16.40 20.48 20.56 7 0.2937 17.07 21.53 21.22
20 14 0.0061 73.13 104.54 40.79 7 0.1916 17.68 22.19 22.18 8 0.1274 19.54 22.00 22.03
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4720 19.86 23.70 23.73 5 2.3433 26.22 26.61 26.54 5 2.7379 12.78 15.98 15.58
12 8 0.4178 26.64 30.11 30.08 8 0.3776 37.00 34.53 34.53 8 0.5254 14.89 17.77 17.77
16 11 0.0827 33.21 36.95 36.90 11 0.0632 68.88 49.04 49.16 11 0.1223 17.04 20.83 20.84
20 13 0.0174 37.68 41.54 41.63 14 0.0121 82.47 58.61 58.58 13 0.0311 24.17 25.90 25.92
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4755 14.44 16.86 16.87 5 2.4720 19.93 23.69 23.78 5 2.3433 26.26 26.58 26.57
12 8 0.4449 19.04 21.08 21.19 8 0.4178 26.58 30.00 30.12 8 0.3776 37.02 34.54 34.54
16 11 0.0848 23.42 25.06 25.09 11 0.0827 33.37 37.12 37.04 11 0.0632 68.89 49.07 49.19
20 13 0.0214 31.80 33.09 33.09 13 0.0174 37.68 41.71 41.62 14 0.0121 82.45 58.46 58.55
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3091 18.33 24.57 27.89 6 2.2991 33.72 31.52 36.23 7 2.3472 29.37 34.77 34.66
12 7 0.4211 28.38 36.80 28.60 7 0.3930 45.32 40.67 34.70 10 0.3516 42.24 44.99 45.00
16 9 0.0870 37.06 44.05 27.98 10 0.0719 49.50 49.82 36.29 11 0.0500 43.97 47.52 47.22
20 12 0.0183 42.28 49.09 29.41 12 0.0143 52.32 52.57 36.02 15 0.0074 60.57 65.82 65.64

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
108.06 126.21 27.06
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1483 38.17 53.86 44.47 4 3.3516 16.53 19.80 19.83 5 3.0386 17.40 20.39 20.29
12 9 0.3160 94.43 124.66 58.54 5 1.0284 25.65 29.05 28.80 6 0.8263 26.74 31.52 31.44
16 11 0.0450 191.58 250.14 78.47 6 0.4002 37.55 48.24 48.15 7 0.2896 38.58 47.80 47.86
20 14 0.0071 297.79 432.50 105.91 7 0.1867 47.20 62.95 62.93 8 0.1186 60.08 60.76 60.80
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4543 23.46 27.54 27.52 5 2.3258 28.58 29.88 29.86 5 2.7359 14.74 18.22 17.70
12 8 0.4223 41.72 46.04 45.94 8 0.3748 52.59 50.30 50.28 8 0.5434 26.25 29.40 29.90
16 11 0.0775 67.43 72.27 72.28 11 0.0650 102.65 83.67 83.65 11 0.1192 42.59 45.17 45.24
20 13 0.0157 87.32 94.42 94.61 14 0.0115 133.97 109.09 109.19 13 0.0279 70.19 75.76 75.95
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4784 17.18 20.98 21.28 5 2.4543 22.80 27.28 27.20 5 2.3258 31.53 33.03 32.99
12 8 0.4458 30.47 30.69 30.87 8 0.4223 41.84 46.57 46.58 8 0.3748 54.26 51.30 51.28
16 11 0.0862 48.38 56.87 56.85 11 0.0775 66.99 72.66 72.62 11 0.0650 102.57 86.01 85.83
20 13 0.0179 82.01 82.97 82.84 13 0.0157 88.05 94.50 94.62 14 0.0115 134.12 110.30 110.28
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3259 21.58 28.93 32.16 6 2.2935 37.27 38.06 41.19 7 2.3470 36.06 38.26 37.87
12 7 0.4145 39.97 50.02 36.87 7 0.3870 59.03 54.71 44.83 10 0.3500 63.33 66.45 66.46
16 9 0.0844 65.45 73.15 48.35 10 0.0712 86.84 87.87 60.10 11 0.0490 88.65 93.96 93.95
20 12 0.0203 83.57 90.55 58.32 12 0.0150 104.25 105.74 68.25 15 0.0074 140.20 144.08 142.80

Clang 18, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
78.86 13.85 8.56
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1535 21.49 28.31 29.32 4 3.3223 12.48 13.93 13.94 5 3.0704 15.87 18.10 18.10
12 9 0.3124 31.77 42.86 31.39 5 1.0493 16.03 18.44 18.48 6 0.8146 18.24 20.74 20.75
16 11 0.0479 39.24 62.85 32.45 6 0.4013 18.61 21.35 21.35 7 0.2937 22.05 22.90 22.87
20 14 0.0061 61.89 79.61 33.53 7 0.1916 22.18 23.26 23.25 8 0.1274 24.06 25.71 25.67
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4720 17.06 18.36 18.34 5 2.3433 17.03 18.86 18.85 5 2.7379 7.96 8.72 8.71
12 8 0.4178 22.67 26.58 26.52 8 0.3776 26.59 26.93 26.92 8 0.5254 11.99 13.74 13.75
16 11 0.0827 33.22 35.33 35.33 11 0.0632 35.59 34.21 34.44 11 0.1223 13.85 17.79 17.79
20 13 0.0174 37.56 38.34 38.30 14 0.0121 44.40 41.25 41.72 13 0.0311 19.09 19.74 19.74
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4755 7.66 8.65 8.48 5 2.4720 17.03 18.42 18.31 5 2.3433 17.04 18.84 18.84
12 8 0.4449 11.88 14.10 14.12 8 0.4178 22.67 26.56 26.51 8 0.3776 26.59 26.93 26.91
16 11 0.0848 14.28 17.20 17.25 11 0.0827 33.15 35.25 35.26 11 0.0632 35.55 34.18 34.17
20 13 0.0214 18.83 20.00 20.00 13 0.0174 37.55 38.27 38.29 14 0.0121 44.44 41.63 41.66
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3091 18.26 20.94 24.58 6 2.2991 47.63 41.98 41.89 7 2.3472 32.53 27.21 28.18
12 7 0.4211 27.01 29.75 24.22 7 0.3930 52.90 46.32 39.38 10 0.3516 36.78 36.74 36.73
16 9 0.0870 33.18 35.75 24.47 10 0.0719 61.81 53.89 40.19 11 0.0500 39.56 38.73 38.66
20 12 0.0183 39.75 46.87 30.08 12 0.0143 64.79 58.91 43.75 15 0.0074 52.35 50.90 50.23

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
123.70 61.73 23.04
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1483 26.45 34.75 34.06 4 3.3516 13.40 14.88 14.89 5 3.0386 19.33 21.52 21.53
12 9 0.3160 80.43 98.40 47.41 5 1.0284 26.72 27.31 27.19 6 0.8263 29.53 33.81 33.55
16 11 0.0450 146.31 206.19 66.05 6 0.4002 40.17 49.61 49.52 7 0.2896 52.77 50.62 50.46
20 14 0.0071 249.10 299.27 83.51 7 0.1867 64.56 65.35 65.34 8 0.1186 67.25 70.34 70.69
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4543 19.12 20.75 20.75 5 2.3258 19.89 22.46 22.46 5 2.7359 10.51 11.79 11.29
12 8 0.4223 34.76 37.85 37.66 8 0.3748 45.59 43.31 43.39 8 0.5434 19.50 21.16 21.10
16 11 0.0775 67.80 69.80 71.25 11 0.0650 70.20 68.71 68.46 11 0.1192 37.51 40.44 40.48
20 13 0.0157 87.86 90.00 89.03 14 0.0115 97.19 92.43 92.69 13 0.0279 53.41 52.24 52.40
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4784 9.25 10.23 10.30 5 2.4543 20.20 21.98 21.94 5 2.3258 18.39 21.39 21.40
12 8 0.4458 23.50 25.27 25.31 8 0.4223 35.86 41.26 41.14 8 0.3748 42.05 44.17 44.05
16 11 0.0862 38.40 41.39 41.53 11 0.0775 66.71 67.23 67.25 11 0.0650 71.03 67.58 67.73
20 13 0.0179 53.25 53.32 53.20 13 0.0157 87.90 86.22 86.23 14 0.0115 96.92 94.20 94.36
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3259 19.84 22.97 25.97 6 2.2935 49.25 43.61 43.33 7 2.3470 36.86 31.92 31.87
12 7 0.4145 42.52 41.20 31.44 7 0.3870 65.85 61.28 51.07 10 0.3500 57.82 57.23 57.07
16 9 0.0844 62.65 64.95 41.02 10 0.0712 90.76 86.87 63.15 11 0.0490 85.47 81.83 81.55
20 12 0.0203 82.05 88.92 57.30 12 0.0150 110.24 107.16 78.25 15 0.0074 131.65 117.67 117.31

VS 2022, x86

N = 1M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
32.06 6.80 5.63
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1535 65.67 60.37 41.03 4 3.3223 20.97 20.67 23.34 5 3.0704 25.06 25.19 26.75
12 9 0.3124 99.38 87.31 42.25 5 1.0493 22.32 22.25 24.30 6 0.8146 27.52 27.94 28.74
16 11 0.0479 123.35 105.20 41.13 6 0.4013 25.15 25.28 25.83 7 0.2937 29.09 30.19 30.47
20 14 0.0061 162.99 135.65 41.76 7 0.1916 26.65 26.89 27.36 8 0.1274 31.33 31.92 32.46
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4720 24.50 41.66 41.60 5 2.3433 26.56 41.44 41.05 5 2.7237 17.60 28.44 28.41
12 8 0.4178 29.54 55.48 56.37 8 0.3776 32.31 55.99 56.46 8 0.5409 16.91 37.62 27.83
16 11 0.0827 38.05 76.72 75.56 11 0.0632 42.43 75.48 75.41 11 0.1175 27.20 54.06 37.42
20 13 0.0174 41.30 83.94 84.48 14 0.0121 46.84 89.59 90.82 13 0.0276 27.14 54.26 37.36
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4745 17.94 28.23 27.82 5 2.4543 19.81 30.64 30.62 5 2.3490 20.39 30.72 30.70
12 8 0.4442 18.09 44.37 34.94 8 0.4151 18.94 38.87 29.03 8 0.3796 20.74 46.79 37.57
16 11 0.0865 28.08 53.58 36.77 11 0.0781 31.84 57.77 40.14 11 0.0642 32.68 57.47 39.86
20 13 0.0179 28.09 53.95 37.21 13 0.0166 32.61 59.41 40.10 14 0.0107 33.94 59.12 40.10
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3091 27.01 43.73 33.33 6 2.2991 32.66 55.18 37.21 7 2.3472 36.46 60.82 60.42
12 7 0.4211 35.58 61.61 33.39 7 0.3930 39.76 61.59 36.54 10 0.3516 44.95 78.40 79.87
16 9 0.0870 40.75 75.89 34.79 10 0.0719 46.90 80.10 36.74 11 0.0500 47.67 83.75 83.39
20 12 0.0183 51.70 99.81 34.05 12 0.0143 56.06 99.59 36.51 15 0.0074 63.98 115.87 116.31

N = 10M elements

boost::unordered_flat_set
insertion successful
lookup
unsuccessful
lookup
61.26 33.26 17.19
filter<int,K> filter<int,1,block<uint64_t,K>> filter<int,1,block<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 6 2.1483 70.17 62.53 42.54 4 3.3516 21.06 20.61 23.99 5 3.0386 26.77 27.00 28.34
12 9 0.3160 125.88 112.63 49.94 5 1.0284 24.57 23.84 26.09 6 0.8263 31.07 30.41 30.96
16 11 0.0450 258.04 220.66 64.44 6 0.4002 37.39 37.09 37.87 7 0.2896 47.53 48.83 47.68
20 14 0.0071 433.93 354.56 79.21 7 0.1867 45.10 44.94 45.39 8 0.1186 61.69 62.99 63.39
filter<int,1,multiblock<uint64_t,K>> filter<int,1,multiblock<uint64_t,K>,1> filter<int,1,fast_multiblock32<K>>
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.4543 26.56 41.64 41.53 5 2.3258 28.53 41.52 41.24 5 2.7344 18.12 30.30 30.29
12 8 0.4223 33.75 57.00 57.86 8 0.3748 36.78 57.41 58.01 8 0.5420 19.17 40.17 30.32
16 11 0.0775 57.91 89.78 88.83 11 0.0650 64.35 91.89 92.03 11 0.1178 47.14 78.15 61.08
20 13 0.0157 74.92 106.78 107.52 14 0.0115 84.90 118.22 119.65 13 0.0273 58.67 90.18 74.47
filter<int,1,fast_multiblock32<K>,1> filter<int,1,fast_multiblock64<K>> filter<int,1,fast_multiblock64<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.4716 18.18 29.88 29.87 5 2.4474 20.12 31.95 31.95 5 2.3181 20.56 31.82 31.81
12 8 0.4430 20.60 48.05 38.29 8 0.4208 20.80 42.69 33.00 8 0.3766 22.90 57.78 48.61
16 11 0.0859 50.08 79.07 62.99 11 0.0774 52.29 80.57 63.09 11 0.0647 53.78 81.78 63.81
20 13 0.0176 61.20 92.65 75.63 13 0.0148 63.28 97.57 77.61 14 0.0118 64.83 97.95 78.44
filter<int,1,block<uint64_t[8],K>> filter<int,1,block<uint64_t[8],K>,1> filter<int,1,multiblock<uint64_t[8],K>>
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.3259 28.74 43.97 35.08 6 2.2935 35.36 55.61 39.33 7 2.3470 38.61 61.46 61.01
12 7 0.4145 39.52 65.35 38.04 7 0.3870 45.46 63.68 39.27 10 0.3500 50.91 83.81 85.24
16 9 0.0844 58.00 88.29 51.15 10 0.0712 71.91 100.19 58.83 11 0.0490 76.74 102.25 101.90
20 12 0.0203 78.84 120.56 61.16 12 0.0150 93.67 132.24 72.17 15 0.0074 109.20 143.31 143.72

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published