Re: [PHP-DEV] Discussion on array_str_contains() RFC and performance benchmarking methodology

[email protected] (Juris Evertovskis)
Newsgroups php.internals
Organization SIA "Glaive.pro"
Message-ID <[email protected]>
On 2026-09-10 14:39, سپهر محمودی wrote:

> در تاریخ پنجشنبه ۱۰ سپتامبر ۲۰۲۶، ۰۶:۰۶ youkidearitai 
> <[email protected]> نوشت:
> 
>> ‪2026年9月10日(木) 10:07 ‫سپهر محمودی‬‎ <[email protected]>:‬
>>> 
>>> 
>>> Hi everyone,
>>> 
>>> I hope you're all having a great week.
>>> 
>>> I've been following the discussions and recent feedback regarding the 
>>> array_str_contains() RFC closely. Performance and speed comparisons 
>>> have come up as a key point, especially around whether a dedicated 
>>> internal C implementation provides sufficient value compared to a 
>>> userland foreach loop.
>>> 
>>> I'd love to open up a constructive and transparent discussion around 
>>> the benchmarking methodology we're using here. Some of the initial 
>>> numbers shared recently don't seem to reflect real-world scenarios or 
>>> different data profiles (like varying array sizes, early exits vs 
>>> worst-case lookups, UTF-8 strings, and compiler optimization flags 
>>> like -O2 / -O3).
>>> 
>>> Before drawing final conclusions on performance, I think it would be 
>>> great if we could align on:
>>> 1. The exact benchmark scripts and test datasets we should use to 
>>> evaluate this fairly.
>>> 2. The compilation environment and flags used for generating these 
>>> metrics.
>>> 3. Where the potential overhead in the current C implementation is 
>>> coming from and how we can optimize it together.
>>> 
>>> My goal has always been to make PHP more expressive and efficient for 
>>> everyday developers. I welcome any suggestions, insights, or 
>>> benchmark reproductions from the community so we can evaluate this 
>>> RFC based on solid, agreed-upon data.
>>> 
>>> Thanks for your time and feedback!
>>> 
>>> Best regards,
>>> Sepehr
>>> 
>> 
>> Hi Internals
>> 
>> For your reference, I have attached the benchmark diff files. (commit
>> hash is 4982bf45f4786faaa198558dd619f8a4d59e25f0)
>> - .diff
>> - .exp
>> - .log
>> - .out
>> - .php
>> - .phpt
>> - .sh
>> 
>> I can not find definite improve performance.
>> (My PC: WSL Ubuntu 24.04, Ryzen 7 7735HS, 32GB RAM)
>> 
>> I don't familiar with Zend Engine's performance, However I think
>> function's performance improvement is limited.
>> 
>> Regards
>> Yuya
>> 
>> --
>> ---------------------------
>> Yuya Hamada (tekimen)
>> - https://tekitoh-memdhoi.info
>> - https://github.com/youkidearitai
>> -----------------------------
> 
> Hi Internals,
> 
> Thank you all for the time and effort invested in this discussion.
> 
> Regarding the benchmarks provided by Yuya, I must address two critical 
> issues:
> 
> 1. The provided implementation does not even build in my environment. 
> It is scientifically impossible to derive any performance conclusions 
> from code that fails to compile.
> 
> 2. Given your own admission of limited familiarity with the Zend Engine 
> internals, the methodology applied here lacks the necessary technical 
> rigor for a valid assessment.
> 
> I am more than willing to engage with constructive, reproducible, and 
> engine-aware performance analysis. However, as it stands, the provided 
> material is effectively contentless and does not offer a basis for a 
> technical evaluation.
> 
> Best regards,
> 
> Sepehr

Hi Sepehr,

I've also been following the discussions on the mailing list.

My read is that Yuya has been the one most welcoming to you. He was 
putting in a word for you during the discussion about message phrasing, 
providing you some guidance and expressing willingness to involve you in 
the i18n work. His openness is visible even now -- unlike most of us, he 
is trying out your code and giving you feedback.

Therefore it is a bit sad to see you being angry and dismissive at him 
in the latest discussions. I think you are mistaking his short 
statements for hostility or gatekeeping. My suggestion: stop throwing 
away his goodwill. If an experienced contributor is giving you feedback, 
you should seriously consider that there might be something true and 
useful.

Regarding the latest discussion I would like to add that admitting lack 
of expertise in zend engine (or anything else) is usually not seen here 
as a sign of weakness, but of honesty. Many of the readers and voters 
here are not experts on every detail either. If someone admits not 
entirely understanding what's going on, it gives you a chance to provide 
explanations and proof instead of dismissing his benchmarks as useless.

By the way...

> Just for your information: someone praised my work who holds a high 
> position in php-src and whom I truly respect--meaning your opinion 
> doesn't really matter to me.

Different open source communities may work differently, but in this one 
a reference to an unnamed figure is unlikely to earn you additional 
respect or authority. It's best to leave such statements out.

BR,
Juris
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.