Re: [RFC] Fix "foreach" behavior
| From: | Dmitry Stogov | Date: | Sun, 01 Feb 2015 03:32:32 +0000 |
| Subject: | Re: [RFC] Fix "foreach" behavior | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-81517@lists.php.net to get a copy of this message | ||
Thanks for benchmarks. This time I didn't see so good results myself :)
I actually, started this work with performance in mind, but after
understanding all existing incosistencies, think that consistency is more
important.
Thanks. Dmitry.
On Jan 31, 2015 11:18 AM, "Rasmus Lerdorf" <rasmus@lerdorf.com> wrote:
> 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
>
>