shnewto / bnf

Parse BNF grammar definitions
MIT License
256 stars 22 forks source link

use hashbrown as internal hashmap #146

Closed CrockAgile closed 7 months ago

CrockAgile commented 7 months ago

hashbrown is the same hashmap used by the std library. however the std library uses some safer defaults (denial-of-service resistant hashing) and is a few versions behind.

these differences may lead to performance loss when not required.

using hashbrown in BNF improved all benchmarks on my local machine by 2-25%.

for this reason, it seems worth BNF adopting hashbrown as its default hasher.

the denial-of-service resistance is not required for BNF's use cases

coveralls commented 7 months ago

Coverage Status

coverage: 98.05% (+0.09%) from 97.956% when pulling 9d81ff056e4cf89cc12d691b60b78f4916f986c9 on hashbrown into f2da5f3e023cdecadff56f81cf4c07e8ae6ac92f on main.