Re: [RFC] Fix "foreach" behavior
| From: | Xinchen Hui | Date: | Sat, 31 Jan 2015 08:27:51 +0000 |
| Subject: | Re: [RFC] Fix "foreach" behavior | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-81473@lists.php.net to get a copy of this message | ||
On Sat, Jan 31, 2015 at 4:18 PM, 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.
Nice~
thanks
>
> 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
>
--
Xinchen Hui
@Laruence
http://www.laruence.com/