Have you rebuilt 5.1 HEAD today?

Dmitry.

> -----Original Message-----
> From: Edin Kadribasic [mailto:[EMAIL PROTECTED] 
> Sent: Monday, March 13, 2006 5:32 PM
> To: Dmitry Stogov
> Cc: 'Rasmus Lerdorf'; 'internals'
> Subject: Re: [PHP-DEV] Calling performance geeks
> 
> 
> I also see very little difference (in favor of php4) on my 
> test box (Dual Xeon 3.2GHz, running Linux 2.6.12 Fedora Core 3):
> 
> php-5.1 (top.php)
> plain 3723 req/sec
> apc stat=1 6220 req/sec
> apc stat=0 6278 req/sec
> 
> php-4.4 (4top.php)
> plain 3978 req/sec
> apc stat=1 6421 req/sec
> apc stat=0 6650 req/sec
> 
> php-5.1 (top10.php)
> plain 1680 req/sec
> apc stat=1 3605 req/sec
> apc stat=0 3880 req/sec
> 
> php-4.4 (4top10.php)
> plain 1731 req/sec
> apc stat=1 3614 req/sec
> apc stat=0 3922 req/sec
> 
> Edin
> 
> Dmitry Stogov wrote:
> > Hi Rasmus,
> > 
> > I made two improvements in 5.1 and run the same bechmarks on Intel 
> > Pentium M 1.5GHz 2M cache.
> > 
> > top/top5/top10
> >             
> > php-5.1             740     550     430 req/sec
> > php-4.4             680     440     290 req/sec
> > 
> > May be the problem is AMD chip? :)
> > 
> > Thanks. Dmitry.
> > 
> > 
> >>-----Original Message-----
> >>From: Rasmus Lerdorf [mailto:[EMAIL PROTECTED]
> >>Sent: Monday, March 13, 2006 7:34 AM
> >>To: internals
> >>Subject: [PHP-DEV] Calling performance geeks
> >>
> >>
> >>We have a bit of a performance disconnect between 4.4 and 5.1
> >>still.  I 
> >>was doing some benchmarking today just as a sanity check on 
> some APC 
> >>work I have been doing lately and came up with this:
> >>
> >>   http://lerdorf.com/php/bm.html
> >>
> >>You can ignore the apc/eaccelerator stuff.  Those numbers are not
> >>surprising.  The surprising number to me is how much faster 
> >>4.4 still is.
> >>
> >>The graph labels are slightly off.  The 0, 5 and 10 includes should
> >>really be 1, 6 and 11.  The actual benchmark code is here:
> >>
> >>   http://www.php.net/~rasmus/bm.tar.gz
> >>
> >>Tested on a Linux 2.6 Ubuntu box on an AMD chip (syscalls are cheap
> >>there) with current PHP_4_4 and PHP_5_1 checkouts.  Was 
> also testing 
> >>5.1.2 to see the effect of getting rid of that uncached 
> realpath call.
> >>
> >>As far as I can tell auto_globals_jit isn't working at all, but I
> >>eliminated that by doing variables_order = GP for these benchmarks. 
> >>Even so, the request_startup is significantly more expensive in 5.1.
> >>
> >>Here are callgrind dumps for each.  Load them up with 
> kcachegrind and
> >>browse around:
> >>
> >>PHP 4.4  http://www.php.net/~rasmus/callgrind.out.1528.gz
> >>PHP 5.1  http://www.php.net/~rasmus/callgrind.out.1488.gz
> >>
> >>Each of these is 1000 requests against the top.php and
> >>4top.php scripts. 
> >>  from bm.tar.gz.  If you start at the
> >>
> >>The script is trivial and looks like this:
> >>
> >><html>
> >><?php
> >>$base_dir = '/var/www/bm/';
> >>include $base_dir . 'config.inc';
> >>
> >>function top_func($arg) {
> >>   $b = $arg.$arg;
> >>   echo $b;
> >>}
> >>class top_class {
> >>   private $prop;
> >>   function __construct($arg) {
> >>     $this->prop = $arg;
> >>   }
> >>   function getProp() {
> >>     return $this->prop;
> >>   }
> >>   function setProp($arg) {
> >>     $this->prop = strtolower($arg);
> >>   }
> >>}
> >>
> >>top_func('foo');
> >>$a = new top_class('bar');
> >>echo $a->getProp();
> >>$a->setProp("AbCdEfG");
> >>echo $a->getProp();
> >>echo <<<EOB
> >>The database is {$config['db']}
> >>and the user is {$config['db_user']}
> >>
> >>EOB;
> >>?>
> >></html>
> >>
> >>and config.inc is:
> >>
> >><?php
> >>$config = array(
> >>   'db'      => 'mysql',
> >>   'db_user' => 'www',
> >>   'db_pwd'  => 'foobar',
> >>   'config1' => 123,
> >>   'config2' => 456,
> >>   'config3' => 789,
> >>   'sub1'    => array(1,2,3,4,5,6,7,8,9,10),
> >>   'sub2'    => 
> >>array("abc","def","ghi","jkl","mno","pqr","stu","vwx","yz")
> >>);
> >>?>
> >>
> >>4top.php is identical except for the class definition being
> >>PHP 4-style 
> >>instead.  As in no private and a PHP 4 constructor.  
> Otherwise it is 
> >>identical.
> >>
> >>I have some ideas for things we can speed up in 5.1.  Like,
> >>for example, 
> >>we should add the ap_add_common_vars() and ap_add_cgi_vars() 
> >>to the jit 
> >>mechanism.  There isn't much point filling these in unless 
> the script 
> >>tries to get them.  the ap_add_common_vars() call is 
> >>extremely expensive 
> >>since it does a qsort with a comparison function that uses 
> >>strcasecmp. 
> >>Of course, this same optimization can be done in 4.4.
> >>
> >>If you know your way around kcachegrind, load up the two
> >>callgrind files 
> >>and see what stands out for you.  As far as I can tell, while 
> >>we can do 
> >>some tricks to speed up various helper bits, the slowdown is 
> >>coming from 
> >>the executor trashing its cache lines.
> >>
> >>-Rasmus
> >>
> >>--
> >>PHP Internals - PHP Runtime Development Mailing List
> >>To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >>
> >>
> > 
> > 
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 
> 

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

Reply via email to