This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Fri, 23 Oct 1998, Jay Glascoe wrote: > I've found that the expected maximum bucket size seems to be related to > log(number-entries). I can't prove that, but I am currently modifying > max-bucket-size to grow at this rate and it does seems to work well. > .... > > My current tests use a big file filled with unique, and very large, random > numbers. But still, the bigger the hashtable, the bigger the expected > largest bucket size (relative to average bucket size). > in my resize function, I have if (imax_bucket_size < log_inumber_entries) { imax_bucket_size = (int)floor(log_inumber_entries + 0.5); max_bucket_size = SCM_MAKINUM(imax_bucket_size); } which gives fantastic performance. For large hashes (~100,000 entries), I'm actually out-pacing the Python-style dictionaries. (Which are opaque, all the book-keeping is kept in a C struct, whereas my hash tables are constantly convert numbers back and forth between C and Scheme). > Jay > jglascoe@jay.giss.nasa.gov > > >