bench: fix PHP arrow functions (fn()=> requires 7.4+), PASS=20/20 on PV
- Replace fn()=> with traditional function() syntax in php_medium and php_large - 8 arrow function occurrences fixed across processWords/statsArr/caesar/lookupOps/nested array_map - Added diag_bugs.sh: diagnostic script for PHP pool exhaustion + ruby/medium cold anomaly - bench_full.sh RUNID=9250986: PASS=20 FAIL=0 (was PASS=18 FAIL=2) - ruby/medium cold=81549ms anomaly confirmed reproducible (3rd time), not a FAIL - Added doc/report-2026-05-20-bench-php-analysis.md
This commit is contained in:
@@ -788,8 +788,8 @@ function sieve($n){$s=array_fill(0,$n+1,true);$s[0]=$s[1]=false;for($i=2;$i*$i<=
|
||||
function sqrtSum($n){$s=0;for($i=1;$i<=$n;$i++)$s+=sqrt($i);return $s;}
|
||||
function bubbleSort($arr){$n=count($arr);for($i=0;$i<$n;$i++)for($j=0;$j<$n-$i-1;$j++)if($arr[$j]>$arr[$j+1])[$arr[$j],$arr[$j+1]]=[$arr[$j+1],$arr[$j]];return $arr;}
|
||||
function matMul($a,$b){$ra=count($a);$ca=count($a[0]);$cb=count($b[0]);$c=array_fill(0,$ra,array_fill(0,$cb,0));for($i=0;$i<$ra;$i++)for($j=0;$j<$cb;$j++)for($k=0;$k<$ca;$k++)$c[$i][$j]+=$a[$i][$k]*$b[$k][$j];return $c;}
|
||||
function processWords($w){return array_values(array_map(fn($s)=>strrev(strtoupper($s)),array_filter($w,fn($s)=>strlen($s)>3)));}
|
||||
function statsArr($arr){$n=count($arr);$m=array_sum($arr)/$n;$v=array_sum(array_map(fn($x)=>($x-$m)**2,$arr))/$n;return['n'=>$n,'mean'=>round($m,4),'std'=>round(sqrt($v),4)];}
|
||||
function processWords($w){$f=array_filter($w,function($s){return strlen($s)>3;});return array_values(array_map(function($s){return strrev(strtoupper($s));},$f));}
|
||||
function statsArr($arr){$n=count($arr);$m=array_sum($arr)/$n;$v=array_sum(array_map(function($x)use($m){return($x-$m)**2;},$arr))/$n;return['n'=>$n,'mean'=>round($m,4),'std'=>round(sqrt($v),4)];}
|
||||
|
||||
function main($event,$context){
|
||||
$t0=microtime(true);
|
||||
@@ -818,10 +818,10 @@ function trigSum($n){$s=0;for($i=0;$i<$n;$i++)$s+=sin($i)*cos($i);return $s;}
|
||||
function bubbleSort($arr){$n=count($arr);for($i=0;$i<$n;$i++)for($j=0;$j<$n-$i-1;$j++)if($arr[$j]>$arr[$j+1])[$arr[$j],$arr[$j+1]]=[$arr[$j+1],$arr[$j]];return $arr;}
|
||||
function insertionSort($arr){for($i=1;$i<count($arr);$i++){$k=$arr[$i];$j=$i-1;while($j>=0&&$arr[$j]>$k){$arr[$j+1]=$arr[$j];$j--;}$arr[$j+1]=$k;}return $arr;}
|
||||
function matMul($a,$b){$ra=count($a);$ca=count($a[0]);$cb=count($b[0]);$c=array_fill(0,$ra,array_fill(0,$cb,0));for($i=0;$i<$ra;$i++)for($j=0;$j<$cb;$j++)for($k=0;$k<$ca;$k++)$c[$i][$j]+=$a[$i][$k]*$b[$k][$j];return $c;}
|
||||
function processWords($w){return array_values(array_map(fn($s)=>['original'=>$s,'upper'=>strtoupper($s),'reversed'=>strrev($s),'len'=>strlen($s),'vowels'=>preg_match_all('/[aeiou]/',$s)],array_filter($w,fn($s)=>strlen($s)>=3)));}
|
||||
function statsArr($arr){$n=count($arr);$m=array_sum($arr)/$n;$v=array_sum(array_map(fn($x)=>($x-$m)**2,$arr))/$n;return['n'=>$n,'min'=>min($arr),'max'=>max($arr),'mean'=>round($m,4),'std'=>round(sqrt($v),4)];}
|
||||
function caesar($t,$sh){return preg_replace_callback('/[a-zA-Z]/',fn($m)=>chr((ord($m[0])-(ctype_lower($m[0])?97:65)+$sh)%26+(ctype_lower($m[0])?97:65)),$t);}
|
||||
function lookupOps($n){$sq=array_combine(range(0,199),array_map(fn($i)=>$i*$i,range(0,199)));$cu=array_combine(range(0,199),array_map(fn($i)=>$i**3,range(0,199)));$r=0;for($i=0;$i<$n;$i++)$r+=($sq[$i%200]??0)+($cu[$i%200]??0);return $r;}
|
||||
function processWords($w){$f=array_filter($w,function($s){return strlen($s)>=3;});return array_values(array_map(function($s){return['original'=>$s,'upper'=>strtoupper($s),'reversed'=>strrev($s),'len'=>strlen($s),'vowels'=>preg_match_all('/[aeiou]/',$s)];},$f));}
|
||||
function statsArr($arr){$n=count($arr);$m=array_sum($arr)/$n;$v=array_sum(array_map(function($x)use($m){return($x-$m)**2;},$arr))/$n;return['n'=>$n,'min'=>min($arr),'max'=>max($arr),'mean'=>round($m,4),'std'=>round(sqrt($v),4)];}
|
||||
function caesar($t,$sh){return preg_replace_callback('/[a-zA-Z]/',function($m)use($sh){return chr((ord($m[0])-(ctype_lower($m[0])?97:65)+$sh)%26+(ctype_lower($m[0])?97:65));},$t);}
|
||||
function lookupOps($n){$sq=array_combine(range(0,199),array_map(function($i){return $i*$i;},range(0,199)));$cu=array_combine(range(0,199),array_map(function($i){return $i**3;},range(0,199)));$r=0;for($i=0;$i<$n;$i++)$r+=($sq[$i%200]??0)+($cu[$i%200]??0);return $r;}
|
||||
|
||||
function main($event,$context){
|
||||
$words=$GLOBALS['WORDS'];
|
||||
@@ -833,8 +833,8 @@ function main($event,$context){
|
||||
$h256=substr(hash('sha256','bench-large-php-2026'),0,16);
|
||||
$md5=substr(hash('md5','bench-large-php-2026'),0,16);
|
||||
$b64=base64_encode('hello from bench-php-large');
|
||||
$ma=array_map(fn($i)=>array_map(fn($j)=>$i+$j,range(0,3)),range(0,3));
|
||||
$mb=array_map(fn($i)=>array_map(fn($j)=>$i*$j+1,range(0,3)),range(0,3));
|
||||
$ma=array_map(function($i){return array_map(function($j)use($i){return $i+$j;},range(0,3));},range(0,3));
|
||||
$mb=array_map(function($i){return array_map(function($j)use($i){return $i*$j+1;},range(0,3));},range(0,3));
|
||||
$mc=matMul($ma,$mb);
|
||||
$pw=processWords($words);$pst=statsArr(array_slice($primes,0,50));
|
||||
$cipher=caesar('hello bench world',13);
|
||||
@@ -845,7 +845,7 @@ function main($event,$context){
|
||||
'sqrt'=>round($sq,2),'log'=>round($lg,2),'trig'=>round($tr,4),
|
||||
'primes'=>count($primes),'fib40'=>$f40,'fibs_sum'=>array_sum($fibs),
|
||||
'h256'=>$h256,'md5'=>$md5,'b64_len'=>strlen($b64),
|
||||
'mat_trace'=>array_sum(array_map(fn($i)=>$mc[$i][$i],range(0,3))),
|
||||
'mat_trace'=>array_sum(array_map(function($i)use($mc){return $mc[$i][$i];},range(0,3))),
|
||||
'words'=>count($pw),'stats'=>$pst,'cipher'=>$cipher,
|
||||
'lookup'=>$lookup,'csum'=>round($csum,6),'elapsed'=>round($elapsed,5)]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user