The change log says:

>Improved performance of AAs by rebalancing trees when rehashing.<

I presume such rehashing is done from time to time when the hash grows up, and 
when the .rehash method is called too.

I have performed some benchmarks, with both string and int keys, and the 
creation (building) of associative arrays in DMD1.036 is about 10-15% slower 
than in DMD1.035 (I can show code if you want, but it's the same code I have 
used in the past).

I have not tested the key retrieval time, I presume it's faster...

Anyway: often performance isn't absolute, usually you have to tune something 
for a specific class of usages. So you want to tune it for the average use 
cases, this means for the most common usages of D AAs. This means that before 
tuning something you collect a statistically significant base of such usages, 
generally from a sizable amount of code. What are the average use cases the 
current performance improvements are based on? Where's the people creating such 
user cases to base the performance tuning on? I think we need to put a little 
more "science" in this tuning business.

Bye,
bearophile

Reply via email to