string hash significant speedup

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 14 05:56:53 PDT 2017


On 8/10/17 6:30 PM, HyperParrow wrote:
> On Thursday, 10 August 2017 at 20:07:35 UTC, Steven Schveighoffer wrote:
>> On 8/10/17 3:36 PM, Johnson Jones wrote:
>>> when using T[string], hashing is used. Computing the hash is 
>>> slow(relatively speaking).
>>>
>>> Does D cache the hashes? Strings are immutable so there is absolutely 
>>> no reason why the hash ever need to be computed more than once.
>>
>> It computes them on insertion, and caches the result in the structure 
>> of the hash table.
> 
> But i think he speaks about the strings that are tested for inclusion 
> (i.e opIn RHS), not those who are inserted, for which obviously the hash 
> is known.

If this is the case, then no, there is no cache. It would have to be a 
cache of the hash per pointer/length combo. I don't know that it's worth 
the effort, certainly not for built-in AA.

-Steve


More information about the Digitalmars-d-learn mailing list