October 21, 2008
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