The code of resizable hash table has been updated so that it doesn't need to compute the hash twice since 2019. Here are some related commits: 2ea492b, 2a7f20d, ... So, the patch removes the outdated content. Signed-off-by: Alan Huang <mmpgouride@xxxxxxxxx> --- datastruct/datastruct.tex | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/datastruct/datastruct.tex b/datastruct/datastruct.tex index 8c2bfc16..9aa04bb5 100644 --- a/datastruct/datastruct.tex +++ b/datastruct/datastruct.tex @@ -2017,28 +2017,6 @@ which could allow the compiler to inline the resulting fixed functions, eliminating not only the overhead of the call instruction, but the argument marshalling as well. -In addition, the resizable hash table is designed to fit an API -that segregates bucket selection from concurrency control. -Although this allows a single torture test to exercise all the hash-table -implementations in this chapter, it also means that many operations -must compute the hash and interact with possible resize operations twice -rather than just once. -In a performance-conscious environment, the \co{hashtab_lock_mod()} -function would also return a reference to the bucket selected, eliminating -the subsequent call to \co{ht_get_bucket()}. - -\QuickQuizSeries{% -\QuickQuizB{ - Couldn't the \path{hashtorture.h} code be modified to accommodate - a version of \co{hashtab_lock_mod()} that subsumes the - \co{ht_get_bucket()} functionality? -}\QuickQuizAnswerB{ - It probably could, and doing so would benefit all of the - per-bucket-locked hash tables presented in this chapter. - Making this modification is left as an exercise for the - reader. -}\QuickQuizEndB -% \QuickQuizE{ How much do these specializations really save? Are they really worth it? @@ -2052,7 +2030,6 @@ the subsequent call to \co{ht_get_bucket()}. Some use cases are extremely sensitive to performance and scalability, while others are less so. }\QuickQuizEndE -} All that aside, one of the great benefits of modern hardware compared to that available when I first started learning to program back in -- 2.34.1