www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Re: DMD 1.036 and 2.020 releases

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
Oct 21 2008