hashtables v1.2.0.0 Release Notes

  • Switch to smaller hash codes to go faster and save space.

    Before, in the basic and cuckoo hash tables, we were storing full machine-word-sized hash codes in the table so that we could quickly search a whole cache line for a key (or a combination of keys) without branching.

    It turns out that a full machine word is not really necessary for this application; switching to a 16-bit key will very slightly increase the number of hash collisions within buckets (meaning that we'll compare more keys), but will pay big dividends in terms of:

    • reduced wastage of RAM

    • searching more keys at once, allowing buckets to grow bigger

    • more cache hits on the hash codes array.

    Other

    • Dependency bumps

    • Fix definitions of forwardSearch2 and forwardSearch3 in PORTABLE mode (also used on Windows) to match C implementations.