I'm curious as to how the hashbrown crate can have up to 2x performance on certain operations, even though it looks like the standard library's HashMap is just a wrapper for hashbrown.
I understand that a wrapper could add a small overhead, but 50% of the original performance is a bit silly, especially considering all of the functions in the wrapper are #[inline], so there should be no overhead in calling most functions.
Does anyone know the reason for this?
3 Comments
CPU@lemdro.id · 11 pts · 2y
hashbrown uses
aHashby default, which is much faster than std'sSipHash-1-3anhkagi@jlai.lu · 7 pts · 2y
I suppose it's because the article you're citing is from april 22nd, and that hashbrown has replaced old std hashmap in this commit, which hash been created on 24th.
I suppose (can't test myself) that if you do the test now (hashbrown against std), the performance difference would be negligeable beacuse you would be testing roughly the same algorithms.
crispy_kilt@feddit.de · 2 pts · 2y
Stdlib uses SipHash, not HashBrown.