Electronics & Programming

develissimo

Open Source electronics development and programming

  • You are not logged in.
  • Root
  • » PHP
  • » [PHP-DEV] [Fwd: Re: Hash Function change between PHP4 and PHP5] [RSS Feed]

#1 Nov. 20, 2005 18:41:32

Stefan E.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] [Fwd: Re: Hash Function change between PHP4 and PHP5]


Here the forwarded answer by Ralf Engelschall, because in the original
name the address of internals was wrong...

Stefan

--
--------------------------------------------------------------------------
Stefan Esser
Hardened-PHP Projecthttp://www.hardened-php.net/GPG-Key gpg --keyserver pgp.mit.edu --recv-key 0x15ABDA78
Key fingerprint 7806 58C8 CFA8 CE4A 1C2C 57DD 4AE1 795E 15AB DA78
----------------------------------------------------------------------------- Begin Message ---On Sun, Nov 20, 2005, Stefan Esser wrote:

> I just realised, that between PHP4 and PHP5 we changed the hash function
> used within zend_hash.h from DJBX33X to DJBX33A. The diff is here =>
>http://cvs.php.net/diff.php/ZendEngine2/zend_hash.h?ws=0&r1=1.57&r2=1.58&ty=u>
> Does anyone remember the exact reason for that? Or was the change done
> by accident when the loops were unrolled? I have no idea if there is a
> big difference for our hashing needs, but I am just curious if we
> changed it because of benchmarks...

I don't know anything about the decisions within PHP development,
but the root reference for both are certainly my OSSP act sources:http://cvs.ossp.org/getfile/ossp-pkg/act/act_hash_fct.cThere I've done in 2002 a comparison of mostly all known
(non-cryptography) hash functions which were in common use at this
time, including DJBX33A and DJBX33X. From my results (see the table
starting in the comment at line 80) you can see that both are more or
less equal, both in speed and distribution. The DJBX33A is the classical
one from DJB while DJBX33X is a revised version from him he used
later (but without any explanations by him or anybody else about the
advantages/disadvantages, although I think it is for just speed).

I guess Andi perhaps has just overlooked the small subtle difference
("+" operation for DJBX33A and "^" for DJBX33X), because as his commit
log for PHP explains, his intention was to provide an optimized version
(via the loop unrolling) plus my explanation about this hash function.
So, the conversion from DJBX33A to DJBX33X was perhaps just by accident.

But it doesn't really hurt: as I said, DJBX33X and DJBX33A are more or
less equal in quality and speed. DJBX33X is even slightly faster on most
processors so choosing DJBX33X is fully ok. At least because of this I
personally also prefer DJBX33X over DJBX33A. No need to change anything
at least... ;-)

Ralf S. Engelschall

www.engelschall.com--- End Message -----
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit:http://www.php.net/unsub.php

Offline

  • Root
  • » PHP
  • » [PHP-DEV] [Fwd: Re: Hash Function change between PHP4 and PHP5] [RSS Feed]

Board footer

Moderator control

Enjoy the 22nd of January
PoweredBy

The Forums are managed by develissimo stuff members, if you find any issues or misplaced content please help us to fix it. Thank you! Tell us via Contact Options
Leave a Message
Welcome to Develissimo Live Support