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
signature.asc
Description: OpenPGP digital signature