Yes, fresh CVS update of 4.4, 5.1 and apc.

Edin


Dmitry Stogov wrote:
> 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