On 4/18/21 6:46 AM, jr wrote:
> William F Pokorny <ano### [at] anonymousorg> wrote:
>> ... However, I need to test(1) with large dictionaries having
>> key hashing collisions to be sure my fixes - as well the previously
>> existing code - work correctly.
> thought/wondered a little more about testing (increasingly?) large dictionaries,
> and made a monkeyed version ('foreach_d.inc') which has an option to add an
> adjustable delay between calls of a payload macro (up to a minute). if thought
> useful, can provide a copy.
Yes, please post. You suspected correctly the foreach include fit less a
direct fit than I 'thought' it would be for my testing.
That said, not posted an update because I've been sliding sideways
yesterday and today.
Off taking a closer look at our parser string hash function. It's fast,
but the distribution(1) into the symbol hash table isn't very good - bad
enough I first thought something wrong was wrong with my dictionary fixes.
Currently have a version based on c++11 std::hash which - so long as you
compile at high optimizations - is looking really good for performance
and distribution. This even with my presently clunky adoption of the
library version in code.
(1) - The linked lists off each hash key get long. For 256 incremented,
'A' prefixed keys, table entries very clustered and with list depths of
up to 15.
I hope to be back to testing my dictionary fixes in the next few days.
Post a reply to this message