Re: [PHP-DEV] UGLY Benchmark Results for PHP Master 2016-08-05

This is only part of a thread. view whole thread
  94861
August 5, 2016 15:17 nikita.ppv@gmail.com (Nikita Popov)
On Fri, Aug 5, 2016 at 4:30 PM, Matt Wilmas <php_lists@realplain.com> wrote:

> Hi all, > > ----- Original Message ----- > From: <lp_benchmark_robot@intel.com> > Sent: Friday, August 05, 2016 > > Results for project PHP master, build date 2016-08-05 06:26:56+03:00 >> commit: 65b6f20 >> previous commit: 69a72df >> revision date: 2016-08-04 22:27:42+02:00 >> environment: Haswell-EP >> cpu: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz 2x18 cores, stepping 2, >> LLC 45 MB >> mem: 128 GB >> os: CentOS 7.1 >> kernel: Linux 3.10.0-229.4.2.el7.x86_64 >> >> Baseline results were generated using release php-7.0.0, with hash >> 60fffd2 from >> 2015-12-01 04:16:47+00:00 >> >> ------------------------------------------------------------ >> ------------------------------- >> benchmark relative change since change since >> current rev run >> std_dev* last run baseline >> with PGO >> ------------------------------------------------------------ >> ------------------------------- >> :-| Wordpress 4.2.2 cgi -T10000 0.18% -0.20% >> 5.10% 7.48% >> :-| Drupal 7.36 cgi -T10000 0.17% -0.24% >> -0.86% 5.31% >> :-| MediaWiki 1.23.9 cgi -T5000 0.11% 0.22% >> -0.13% 3.80% >> :-) bench.php cgi -T100 0.01% 1.06% .28% >> -7.09% >> :-) micro_bench.php cgi -T10 0.01% 4.09% >> 15.14% 1.66% >> :-( mandelbrot.php cgi -T100 0.15% -6.51% >> 28.51% 5.76% >> ------------------------------------------------------------ >> ------------------------------- >> > > Anyone know what has happened with the Wordpress improvement this week? > This is 3 reports in a row that show ~5%. > > Did I miss some substantial commit(s)? > > Thanks for any insight!
Thanks for pointing this out. This is caused by the change to array_slice() as part of https://github.com/php/php-src/commit/e730c8fc90299789a7f551cb7142e182952d92e0#diff-497f073aa1ab88afcb8b248fc25d2a12R3014 .. As a consequence of this change, an array_slice() on an array with rc=1 references will now not return these references in the result. (This is the correct behavior -- previously it instead dropped the references in the original array, which is not wrong either, but non-standard.) It looks like Wordpress is passing these arrays to call_user_func_array() with a function that expects a reference argument: call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); And this results in: nikic@saturn:~/php-src-fast$ sapi/cgi/php-cgi -c php.ini -T1 .../wordpress-4.1/index.php | grep Warning Warning: Parameter 1 to wp_default_styles() expected to be a reference, value given in /home/nikic/wordpress-4.1/wp-includes/plugin.php on line 571
Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /home/nikic/wordpress-4.1/wp-includes/plugin.php on line 571
So essentially, we're winning 5% because these two calls do not occur... Nikita