mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-04-19 18:30:27 +00:00
Rework our hash functions a bit for significant better performance: * Rename int_hash to u32_hash to mirror u64_hash. * Make pair_int_hash call u64_hash instead of multiple u32_hash()es. * Implement MurmurHash3's fmix32 and fmix64 for u32_hash and u64_hash. On my machine, this speeds up u32_hash by 20%, u64_hash by ~290%, and pair_int_hash by ~260%. We lose the property that an input of 0 results in something that is not 0. I've experimented with an offset to both hash functions, but it resulted in a measurable performance degradation for u64_hash. If there's a good use case for 0 not to result in 0, we can always add in that offset as a countermeasure in the future. |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| Forward.h | ||
| Regex.h | ||
| RegexByteCode.cpp | ||
| RegexByteCode.h | ||
| RegexBytecodeStreamOptimizer.h | ||
| RegexDebug.h | ||
| RegexDefs.h | ||
| RegexError.h | ||
| RegexLexer.cpp | ||
| RegexLexer.h | ||
| RegexMatch.h | ||
| RegexMatcher.cpp | ||
| RegexMatcher.h | ||
| RegexOptimizer.cpp | ||
| RegexOptions.h | ||
| RegexParser.cpp | ||
| RegexParser.h | ||