On 01/30/2015 09:10 PM, Dmitry Stogov wrote:
> Hi,
> 
> Nikita got an idea about stopping changing of array/object internal
> pointers even in forech by reference.
> I've added an additional RFC section:
> 
> https://wiki.php.net/rfc/php7_foreach#additional_behavoir_change
> 
> Trivial implementation on top of the main patch:
> 
> https://gist.github.com/dstogov/63b269207ba0aed8b776
> 
> and an additional proposed voting question.
> 
> Also, the implementation now must be almost complete.

I built your branch and applied Nikita's patch as well and ran it
through my benchmark box here. Before -> After numbers in requests/sec:

Drupal8-b4        182 ->  184
Wordpress-4.1     661 ->  675
phpbb-3.1.2      1071 -> 1084
Mediawiki-1.24.1  304 ->  306
Opencart-2.0.1.1  458 ->  459
WardrobeCMS-1.2.0 993 ->  999
Geeklog-2.1.0     823 ->  825
Traq-3.5.2       1869 -> 1902

So about a 1% boost across the board except for Opencart, but it spends
most of its time creating sessions on disk and writing to MySQL.

No obvious visible things broke in any of these. Overall, even without
the performance boost, I think making the edge-case foreach behaviour
consistent and predictable is a good thing on its own.

-Rasmus

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to