mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-11 02:30:44 -04:00
This merge request resolves some performance regressions introduced with the change from isc_symtab_t to isc_hashmap_t. The key improvements are: 1. Using a faster hash function than both isc_hashmap_t and isc_symtab_t. The previous implementation used SipHash, but the hashflood resistance properties of SipHash are unneeded for config parsing. 2. Shrinking the initial size of the isc_hashmap_t used inside isc_symtab_t. Symtab is mainly used for config parsing, and the when used that way it will have between 1 and ~50 keys, but the previous implementation initialized a map with 128 slots. By initializing a smaller map, we speed up mallocs and optimize for the typical case of few config keys. 3. Slight optimization of the string matching in the hashmap, so that the tail is handled in a single load + comparison, instead of byte by byte. Of the three improvements, this is the least important. |
||
|---|---|---|
| .. | ||
| isc | ||
| .clang-format | ||