With Araq's exponential growth idea keeping the lists very short (like 16..48 
at most, at 8 bytes an entry or maybe 1..2 cache lines typically and no more 
than 6 cache lines), I should perhaps have said that, it might be faster to 
even do a linear search up to 8..16 entries instead of `lowerBound`. I mean, 
`[]` as done in code like mine above/maybe with that spruce up, is honestly 
probably not that much slower than a hash lookup in an integer keyed table. Not 
a `[](seq)`, but also not so bad. So, you could look at my version as an 
optimization of the unrolled linked list to "just fully unrolled" which should 
be fine with the very short lists in this situation. Providing a slow `[]` just 
seems not a long-term wise plan which is why I couched my suggestion in terms 
of following up on Araq's own point 4.

Reply via email to