Benchmarking Bloom Filters and Hash Functions in Go

509 views
Skip to first unread message

Jian Zhen

unread,
Sep 4, 2013, 3:59:06 PM9/4/13
to golan...@googlegroups.com
Hi everyone,

Looks like bloom filter is one of those data structures that's great for learning a new language. I have seen several posted here but figure why not share yet another bloom filter implementation. 

Over the weekend I completed my "Go Learn" project #4: implement and benchmark bloom filters in Go. Thought folks might be interested in seeing the results.

- The Go package and tests: https://github.com/zhenjl/bloom
- Gist containing all the gory details of test output: https://gist.github.com/zhenjl/6433634

The results are probably not hugely surprising. They all performed pretty well except for Murmur3-64 and CityHash-64. 

The murmur3 implementation I used (https://github.com/spaolacci/murmur3) seems to have issues, or I am using it incorrectly. The bloom filters using this murmur3 implementation turns out to be pretty bad. CityHash-64 functionally works correctly, but performance-wise sucks pretty bad. Could just be my implementation.

Anyways, love any comments/feedbacks you have on the benchmarks or the package itself. I am still learning.

thanks

Jian

Eli Janssen

unread,
Sep 7, 2013, 5:55:37 PM9/7/13
to Jian Zhen, golan...@googlegroups.com
You might give siphash a try.

https://131002.net/siphash/
> --
> You received this message because you are subscribed to the Google Groups "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

Reply all
Reply to author
Forward
0 new messages