On Apr 2, 2026, at 11:25 AM, Matthew Weier O'Phinney <mweierophinney@gmail.com> wrote:
On Wed, Mar 11, 2026 at 10:56 AM Calvin Buckley <calvin@cmpct.info> wrote:
Based on the feedback I had from my proposal for function arguments in
errors last week, I'd like to introduce an RFC for it. Please let me
know what you think and please raise any possible issues.
PHP: rfc:display_error_function_args
Have you done any benchmarking on this? What is the performance impact when it is enabled versus disabled? That information will be useful if this passes so that users can understand not just the security impact of having this information reported in logs, but the performance impact.
--
Matthew Weier O'Phinney
mweierophinney@gmail.com
https://mwop.net/
he/him
FWIW, I actually did try running benchmark/benchmark.php. The difference is pretty much margin of error (somehow fewer instructions in some cases?), but I also don't expect to see much of any docrefs triggered in it either. For the sake of completeness:
Without:
{
"Zend\/bench.php": {
"instructions": "1979721332"
},
"Zend\/bench.php JIT": {
"instructions": "589555739"
},
"Symfony Demo 2.2.3": {
"instructions": "87285017"
},
"Symfony Demo 2.2.3 JIT": {
"instructions": "90024058"
},
"Wordpress 6.2": {
"instructions": "244605957"
},
"Wordpress 6.2 JIT": {
"instructions": "211892436"
}
}
With:
{
"Zend\/bench.php": {
"instructions": "1979721328"
},
"Zend\/bench.php JIT": {
"instructions": "589555784"
},
"Symfony Demo 2.2.3": {
"instructions": "87285011"
},
"Symfony Demo 2.2.3 JIT": {
"instructions": "90023734"
},
"Wordpress 6.2": {
"instructions": "244606014"
},
"Wordpress 6.2 JIT": {
"instructions": "211892519"
}
}
You can try it yourself with this patch (set error_include_args as needed):
diff --git a/benchmark/benchmark.php b/benchmark/benchmark.php
index 0c2ac4c6010..6377c3ceb37 100644
--- a/benchmark/benchmark.php
+++ b/benchmark/benchmark.php
@@ -79,7 +79,8 @@ function runWordpress(bool $jit): array {
/* FIXME: It might be better to use a stable version of PHP for this command because we can't
* easily alter the phar file */
runPhpCommand([
- '-d error_reporting=0',
+ '-d error_reporting=22527',
+ '-d error_include_args=1',
'wp-cli.phar',
'core',
'install',
@@ -122,6 +123,8 @@ function runValgrindPhpCgiCommand(
'--',
$phpCgi,
'-T' . ($warmup ? $warmup . ',' : '') . $repeat,
+ '-d error_reporting=22527',
+ '-d error_include_args=1',
'-d max_execution_time=0',
'-d opcache.enable=1',
'-d opcache.jit=' . ($jit ? 'tracing' : 'disable'),
I'm working on something that triggers a lot of docrefs in a hot loop, but I also don't know how interesting that would be seeing as if you're getting thousands of docref-triggered messages a second, your program probably has an issue.