RE: [PHP-DEV] Giving Globals the CV treatment [WAS: Runtime JIT Proposals]
| From: | Dmitry Stogov | Date: | Fri, 19 Jan 2007 07:36:32 +0000 |
| Subject: | RE: [PHP-DEV] Giving Globals the CV treatment [WAS: Runtime JIT Proposals] | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-27533@lists.php.net to get a copy of this message | ||
1% is a measure mistake, so patch is OK.
Dmitry.
> -----Original Message-----
> From: Sara Golemon [mailto:pollita@php.net]
> Sent: Friday, January 19, 2007 12:35 AM
> To: Dmitry Stogov
> Cc: internals@lists.php.net; 'Andrei Zmievski'; 'Andi Gutmans'
> Subject: Re: [PHP-DEV] Giving Globals the CV treatment [WAS:
> Runtime JIT Proposals]
>
>
> > Could you also run Zend/bench.php to check that patch
> doesn't slowdown
> > local fetches. I think the patch can be commited into HEAD
> (not into
> > PHP_5_2), but I would prefer collect all performance patches and
> > commit them into PHP_5_3 and HEAD together.
> >
> without with
> simple 0.538 0.550
> simplecall 2.046 1.932
> simpleucall 2.956 2.885
> simpleudcall 3.514 3.484
> mandel 1.952 1.969
> mandel2 3.398 3.332
> ackermann(7) 3.358 3.364
> ary(50000) 0.158 0.159
> ary2(50000) 0.161 0.137
> ary3(2000) 1.081 1.057
> fibo(30) 9.587 9.618
> hash1(50000) 0.422 0.416
> hash2(500) 0.305 0.306
> heapsort(20000) 0.779 0.804
> matrix(20) 0.525 0.509
> nestedloop(12) 0.931 0.927
> sieve(30) 0.640 0.638
> strcat(200000) 0.286 0.283
> -------------------------------
> Total 32.637 32.371
>
> A net gain of about 1%. Of course, that number should be
> taken with a
> grain of salt in both directions as the test framework measures
> realtime, and not process time, but the numbers such as they
> are, *are*
> still pointing in the right direction...
>
> > I would be glad to look into another solution, but I cannot even
> > imagine it. PHP language wasn't designed to be fast :(
> >
> I'd say this can be resolved by an optimizer, but I'm going
> to try a few
> attempts and see if anything non-ugly can be come up with... $foo =
> @$_REQUEST['foo']; *is* a common enough usage that a
> solution would be
> worthwhile.
>
> >> So leaving the silence alone (since it's necessary), and
> >> considering the
> >> appearant gain for a minor code change, what are your thoughts on
> >> tossing this in as is and looking at extending it for
> >> $GLOBALS['foo'] ->
> >> (global fetch CV)$foo later on?
> >
> Same with this one, let an optimizer figure it out. Once the
> framework
> for specifying fetchtype is in place, the main engine
> compiler can take
> it's hands off the problem.
>
> -Sara
>