Re: [RFC][VOTE] E_WARNING on invalid container read-adccess
| From: | David Walker | Date: | Wed, 24 Aug 2016 15:51:13 +0000 |
| Subject: | Re: [RFC][VOTE] E_WARNING on invalid container read-adccess | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-95431@lists.php.net to get a copy of this message | ||
On Wed, Aug 24, 2016 at 9:36 AM Bishop Bettini <bishop@php.net> wrote:
> On Wed, Aug 24, 2016 at 10:58 AM, David Walker <dave+php@mudsite.com>
> wrote:
>
>> I'd like to extend the vote through Sunday evening in the event anyone had
>> reservations based on potential performance impact. The RFC is currently
>> sitting 15-0 in favor.
>>
>
> I'd recommend extending the original end date by a week, since internals
> tends to vote in weekly intervals (an informal minimal reasonable response
> time, I suppose).
>
Good to know the general convention here. I'll extend a week until
Wednesday the 31st.
>
>
>> (added to RFC)
>> Execution Time (DualCore 3ghz; 2g ram)
>> * Current Master : ~0.09s (~489k operations)
>> * Current Master w/RFC Displaying Warnings: ~33.25s
>> * Current Master w/RFC Hiding Warnings: ~0.82s (~4.091m operations)
>>
>> We can see there is a significant increase in operations on huge loads.
>> However, I wouldn't suspect 1m of these errors per request almost ever.
>> So, yes there is; but I'd call it useful information overhead.
>>
>
> I've not looked at the code. How much, if at all, does the RFC change the
> happy path operation, on a test like this?
>
> $a = [ 'foo' ];
> for ($i = 0; $i < 1000000; $i++) { $a[0]; }
>
> Notwithstanding, I feel the ops increase 10x is worth it: this is a subtle
> code problem.
>
That is my thoughts too. When testing this change against my product I
uncovered 10 cases of this warning being raised (which was actually
helpful), but only ever 2-3 per request. So I'd imagine it's never going
to come to the 1m+ happenings per request ever.
And for your given test case, since $a[0] is defined (as 'foo') the change
in this RFC is not triggered, so there is no difference between any of the
testings.
--
Dave