Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:1867 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 96110 invoked from network); 21 May 2003 20:42:31 -0000 Received: from unknown (HELO mail.zend.com) (192.117.235.230) by pb1.pair.com with SMTP; 21 May 2003 20:42:31 -0000 Received: (qmail 18196 invoked from network); 21 May 2003 20:42:29 -0000 Received: from localhost (HELO andi-laptop.zend.com) (127.0.0.1) by localhost with SMTP; 21 May 2003 20:42:29 -0000 Message-ID: <5.1.0.14.2.20030521233909.030f99a0@127.0.0.1> X-Sender: andi@127.0.0.1 X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Wed, 21 May 2003 23:42:51 +0300 To: Sterling Hughes ,internals@lists.php.net Cc: zeev@zend.com In-Reply-To: <1053524019.2177.35.camel@hasele> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: Re: zend_fast_hash From: andi@zend.com (Andi Gutmans) References: <1053524019.2177.35.camel@hasele> I'll try and take a look at it more closely in the next couple of days. I've been wanting to make a fast hash for a while for the parts of PHP which don't need the goodies in the existing one. A few things which I saw right away: a) You can allocate the key as part of the hash element. This will save you an emalloc() per insertion and an efree() per deletion (we do this in zend_hash.*). b) Instead of using modulo (%) you can use bit arithmetic like in zend_hash.*. The hash function is supposed to be good enough. Wanna write up a new patch? Thans, Andi At 09:33 AM 5/21/2003 -0400, Sterling Hughes wrote: >Hi, > >I've implemented a very lightweight, efficient hash table for zend >engine 2. This is a table that's appropriate for usage in many of the >areas where then Zend hash table implementation is unnecessarily complex >(which is pretty much everywhere except for PHP arrays themselves.) > >I've attached the implementation, and a patch which integrates the new >hashtable implementation with Zend, including a "case-study," where I've >converted over EG(included_files) to use the new hashtable >implementation. Right now the hash table code is very simple, as its >just there for initial perusal, it can of course be improved upon. > >So, when can I integrate it? ;-) > >-Sterling > >-- >"A business that makes nothing but money is a poor kind of business." > - Henry Ford > >