• Joanne Koong's avatar
    bpf/benchs: Add benchmarks for comparing hashmap lookups w/ vs. w/out bloom filter · f44bc543
    Joanne Koong authored
    This patch adds benchmark tests for comparing the performance of hashmap
    lookups without the bloom filter vs. hashmap lookups with the bloom filter.
    
    Checking the bloom filter first for whether the element exists should
    overall enable a higher throughput for hashmap lookups, since if the
    element does not exist in the bloom filter, we can avoid a costly lookup in
    the hashmap.
    
    On average, using 5 hash functions in the bloom filter tended to perform
    the best across the widest range of different entry sizes. The benchmark
    results using 5 hash functions (running on 8 threads on a machine with one
    numa node, and taking the average of 3 runs) were roughly as follows:
    
    value_size = 4 bytes -
    	10k entries: 30% faster
    	50k entries: 40% faster
    	100k entries: 40% faster
    	500k entres: 70% faster
    	1 million entries: 90% faster
    	5 million entries: 140% faster
    
    value_size = 8 bytes -
    	10k entries: 30% faster
    	50k entries: 40% faster
    	100k entries: 50% faster
    	500k entres: 80% faster
    	1 million entries: 100% faster
    	5 million entries: 150% faster
    
    value_size = 16 bytes -
    	10k entries: 20% faster
    	50k entries: 30% faster
    	100k entries: 35% faster
    	500k entres: 65% faster
    	1 million entries: 85% faster
    	5 million entries: 110% faster
    
    value_size = 40 bytes -
    	10k entries: 5% faster
    	50k entries: 15% faster
    	100k entries: 20% faster
    	500k entres: 65% faster
    	1 million entries: 75% faster
    	5 million entries: 120% faster
    Signed-off-by: default avatarJoanne Koong <joannekoong@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20211027234504.30744-6-joannekoong@fb.com
    f44bc543
run_bench_bloom_filter_map.sh 1.47 KB