fun project - improving calcHash

qznc qznc at web.de
Mon Jun 24 04:11:40 PDT 2013


On Sunday, 23 June 2013 at 21:22:40 UTC, Walter Bright wrote:
> https://github.com/D-Programming-Language/dmd/blob/master/src/root/stringtable.c#L21
>
> Profiling shows the calcHash function is a significant 
> contributor to compilation time (3.25% of total time). So 
> making it faster is a win. Even making dmd 1% faster would be a 
> nice win - all those little drops add up.
>
> There are many, many string hash functions findable through 
> google. Anyone want to spend the effort to make a faster one? 
> Remember, ya gotta prove it's faster!
>
> A nice timing test would be the time expending compiling 
> Phobos. I would suggest that the 64 bit build of dmd be used 
> for timing tests.
>
> Also, be careful, many of those hash functions on the intarnets 
> have a license that makes it unusable for dmd.

My first idea was to look at Python, since it requires a lot of 
hash calculation dynamically and probably is one of the most 
tuned implementations. Interesting how naive it is:

http://hg.python.org/cpython/file/7aab60b70f90/Objects/object.c#l759

Just a simple for loop over chars. No switch.

Wikipedia: "Python Software Foundation License (PSFL) is a 
BSD-style permissive free software license"


More information about the Digitalmars-d mailing list