# UGLY Benchmark Results for PHP Master 2016-08-05

- Thread: https://externals.io/message/94852
- Original archive: https://news-web.php.net/php.internals/94852
- Started by lp_benchmark_robot@intel.com on 2016-08-05T10:20:44+00:00
- Messages: 3
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #94852 — lp_benchmark_robot@intel.com — 2016-08-05T10:20:44+00:00

URL: https://externals.io/message/94852#94852

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%         32.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%
-------------------------------------------------------------------------------------------

* Relative Standard Deviation (Standard Deviation/Average)

If this is not displayed properly please visit our results page here: http://languagesperformance.intel.com/ugly-benchmark-results-for-php-master-2016-08-05/

Note: Benchmark results for Wordpress, Drupal, MediaWiki are measured in
fetches/second while all others are measured in seconds.
More details on measurements methodology at: 
https://01.org/lp/documentation/php-environment-setup.

Subject Label Legend:
Attributes are determined based on the performance evolution of the workloads
compared to the previous measurement iteration.
NEUTRAL: performance did not change by more than 1% for any workload
GOOD: performance improved by more than 1% for at least one workload and there
is no regression greater than 1%
BAD: performance dropped by more than 1% for at least one workload and there is
no improvement greater than 1%
UGLY: performance improved by more than 1% for at least one workload and also
dropped by more than 1% for at least one workload


Our lab does a nightly source pull and build of the PHP project and measures
performance changes against the previous stable version and the previous nightly
measurement. This is provided as a service to the community so that quality
issues with current hardware can be identified quickly.

Intel technologies' features and benefits depend on system configuration and may
require enabled hardware, software or service activation. Performance varies
depending on system configuration.

---

## #94856 — Matt Wilmas — 2016-08-05T14:30:35+00:00

URL: https://externals.io/message/94852#94856 · In reply to: #94852

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!

- Matt

> * Relative Standard Deviation (Standard Deviation/Average)
>
> If this is not displayed properly please visit our results page here: 
> http://languagesperformance.intel.com/ugly-benchmark-results-for-php-master-2016-08-05/
>
> Note: Benchmark results for Wordpress, Drupal, MediaWiki are measured in
> fetches/second while all others are measured in seconds.
> More details on measurements methodology at:
> https://01.org/lp/documentation/php-environment-setup.
>
> Subject Label Legend:
> Attributes are determined based on the performance evolution of the 
> workloads
> compared to the previous measurement iteration.
> NEUTRAL: performance did not change by more than 1% for any workload
> GOOD: performance improved by more than 1% for at least one workload and 
> there
> is no regression greater than 1%
> BAD: performance dropped by more than 1% for at least one workload and 
> there is
> no improvement greater than 1%
> UGLY: performance improved by more than 1% for at least one workload and 
> also
> dropped by more than 1% for at least one workload
>
>
> Our lab does a nightly source pull and build of the PHP project and 
> measures
> performance changes against the previous stable version and the previous 
> nightly
> measurement. This is provided as a service to the community so that 
> quality
> issues with current hardware can be identified quickly.
>
> Intel technologies' features and benefits depend on system configuration 
> and may
> require enabled hardware, software or service activation. Performance 
> varies
> depending on system configuration.

---

## #94861 — Nikita Popov — 2016-08-05T15:17:13+00:00

URL: https://externals.io/message/94852#94861 · In reply to: #94856

> 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
> > […]
>
> 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
<b>Warning</b>:  Parameter 1 to wp_default_styles() expected to be a
reference, value given in
<b>/home/nikic/wordpress-4.1/wp-includes/plugin.php</b> on line
<b>571</b><br />
<b>Warning</b>:  Parameter 1 to wp_default_scripts() expected to be a
reference, value given in
<b>/home/nikic/wordpress-4.1/wp-includes/plugin.php</b> on line
<b>571</b><br />

So essentially, we're winning 5% because these two calls do not occur...

Nikita
