fun project - improving calcHash
Tyro[17]
ridimz at yahoo.com
Mon Jun 24 15:56:33 PDT 2013
On 6/24/13 5:56 PM, Anders Halager wrote:
> On Monday, 24 June 2013 at 20:19:31 UTC, Walter Bright wrote:
>> On 6/24/2013 1:08 PM, Anders Halager wrote:
>>> Python is one of the slower interpreted languages. It would be more
>>> interesting
>>> to look at luajit which actually does something clever.
>>> If the string is at least 4 chars long it only hashes the first 4
>>> bytes, the
>>> last 4, the 4 starting at floor(len/2)-2 and the 4 starting at
>>> floor(len/4)-1.
>>> Any of these may overlap of course but that isn't a problem.
>>
>> I used that method back in the 1980's, it was well known then, but
>> perhaps has drifted into obscurity. In fact, I still use it for
>> hashing identifiers in DMC++.
>
> I can't imagine all the clever (even if outdated) tricks that have
> disappeared with retired old-timers :)
>
> I haven't set up anything for testing but if someone wants to try I've
> made a quick patch here: http://dpaste.com/hold/1268958/
This is significantly faster than anything submitted thus far. Compiled
alongside Juan Manuel Cabo's submission, the results are as follows:
Times hashing words:
Unchanged : 1386 ms
One switch: 1338 ms
Only add : 1354 ms
Anders Haliger : 933 ms
Times hashing entire lines:
Unchanged : 335 ms
One switch: 332 ms
Only add : 331 ms
Anders Haliger : 125 ms
Wonder how much faster can it get?
--
Andrew Edwards
--------------------
http://www.akeron.co
auto getAddress() {
string location = "@", period = ".";
return ("info" ~ location ~ "afidem" ~ period ~ "org");
}
More information about the Digitalmars-d
mailing list