You could argue that saving a handful of seconds across 10 million memory accesses is hardly worth the effort. In many cases this will be true. Moreover, every indication suggests that CPU speed will continue to increase, while DRAM access speeds have remained stable for several years. As time passes, the benefits of considering memory latency will increase. So, for closed hash tables, keep them sparsely populated and use linear rehashing.
Memory latency is bound to become more significant in other areas of programming.
Bear this in mind as you code. I'd like to thank Marshall K. McKusick and John Mashey for their ideas, and John Rex and Ralph Barker for help in refining them. An adaptation of Peter Weinberger's generic hashing algorithm. The published hash algorithm used in the UNIX ELF format for object files.