Re: [RFC] Fix "foreach" behavior

From: Date: Sat, 31 Jan 2015 08:18:10 +0000
Subject: Re: [RFC] Fix "foreach" behavior
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-81472@lists.php.net to get a copy of this message
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: [application/pgp-signature] OpenPGP digital signature signature.asc
« previous php.internals (#81472) next »