Re: Re: HANDLE_NUMERIC()

From: Date: Thu, 22 May 2003 17:40:00 +0000
Subject: Re: Re: HANDLE_NUMERIC()
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-1909@lists.php.net to get a copy of this message
On Thu, 2003-05-22 at 15:02, George Schlossnagle wrote: > On Thursday, May 22, 2003, at 02:58 PM, Andi Gutmans wrote: > > > At 12:52 PM 5/22/2003 -0400, Sterling Hughes wrote: > >> Hi, > >> > >> I've attached a small patch which removes HANDLE_NUMERIC() from > >> zend_hash.c, and moves it instead to the necessary places in > >> zend_execute.c, in the form of a zend_is_numeric_key() function > >> defined > >> in zend_operators.c > >> > >> Anyhow, I'm getting a really nice performance increase. Although it > >> depends on the usage, it certainly makes pretty much everything > >> zippier > >> (and dare I say sexier. :) > > > > I'm not sure you can be certain that other places in PHP don't use the > > feature of HANDLE_NUMERIC. > > Seems to be quite a dangerous patch to me even if you solved it for > > the symbol table. > > Yeah... seems safer using your leaner symbol tables where appropriate > rather than carving up the current implementation. > What areas rely on it though? Think about how esoteric this usage is. AFAICT (and Zeev) HANDLE_NUMERIC() is only used when you assign to an array: $ar["20"] = 10; Where else to imagine that this feature would be used? The only place that really concerns me is engine level, but I can't find the problem there. As far as extension space, I've written enough extensions and maintained enough "extension-ish" code, and I haven't run across this once. Leaner hashtables may also be an option, but I can't see a reason that HANDLE_NUMERIC() belongs in the hash table implementation. -Sterling -- Good judgement comes from experience, and experience comes from bad judgement. - Fred Brooks

« previous php.internals (#1909) next »