e23fibTiming.php PHP redir stdout, achtung läuft nur in CLI!!!

e23fibTiming.php

e23fibTiming.php

fun cnt sum ticks utime stime ti/cnt ns
fXpld0 1000000 45888890 0.10 0.10 0.00 10000
fXpldArr 1000000 7000000 0.22 0.22 0.00 22000
fXpld 1000000 7000000 0.41 0.41 0.00 41000
fXpldPreg 1000000 7000000 0.57 0.57 0.00 57000
fXpldFor 1000000 7000000 0.86 0.86 0.00 86000
fXpldForSpn 1000000 7000000 0.87 0.87 0.00 87000
fXpld0 1000000 45888890 0.10 0.10 0.00 10000
fXpldArr 1000000 7000000 0.22 0.22 0.00 22000
fXpld 1000000 7000000 0.42 0.42 0.00 42000
fXpldPreg 1000000 7000000 0.58 0.58 0.00 58000
fXpldFor 1000000 7000000 0.85 0.85 0.00 85000
fXpldForSpn 1000000 7000000 0.87 0.87 0.00 87000
fXpld0 1000000 45888890 0.09 0.09 0.00 9000
fXpldArr 1000000 7000000 0.23 0.22 0.00 23000
fXpld 1000000 7000000 0.42 0.43 0.00 42000
fXpldPreg 1000000 7000000 0.58 0.57 0.00 58000
fXpldFor 1000000 7000000 0.86 0.87 0.00 86000
fXpldForSpn 1000000 7000000 0.87 0.87 0.00 87000

End e23fibTiming.php

args

e23fibTiming.php

/home/ch45859/web/wlkl.ch/public_html/inf/php/e23fibTiming.php

*** code does not have a span berfore first <br>***
<html>
<h2><?php echo basename(__file__); ?> PHP redir stdout, achtung läuft nur in CLI!!!</h3>
<?php 
require_once('env.php');
outBegin();
$cEnd = 1e6;

function fFor() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $cnt++;
        $sum += $i;
    }
}

function iFun($j) {
    global $cnt, $sum;
    $cnt++;
    $sum += $j;
}

function fFunction() {
    global $cEnd;
    for ($i=0; $i < $cEnd; $i++) 
        iFun($i);
}

function fVarFun() {
    global $cEnd;
    $ifu = 'iFun';
    for ($i=0; $i < $cEnd; $i++) 
        $ifu($i);
}

function iIt() {
    global $cEnd;
    for ($i=0; $i < $cEnd; $i++) 
        yield $i;
}

function fIterator() {
    global $cnt, $sum;
    foreach (iIt() as $i) {
        $cnt++;
        $sum += $i;
    }
}

function iFib() {
    global $cEnd;
    for ($i=0; $i < $cEnd; $i++) 
        Fiber::suspend($i);
}

function fFiber() {
    global $cnt, $sum;
    $fi = new Fiber('iFib');
    for($i = $fi->start(); $i !== null; $i = $fi->resume()) {    
        $cnt++;
        $sum += $i;
    }
}

class cObj {
public $null, $eins, $zwei, $drei, $vier, $fuenf, $sechs;
    public function __construct($n, $e, $z, $d, $v, $f, $s) {
    $this->null = $n;
    $this->eins = $e;
    $this->zwei = $z;
    $this->drei = $d;
    $this->vier = $v;
    $this->fuenf = $f;
    $this->sechs = $s;
    }
}

function fArrNN() {
    global $cEnd, $cnt;
    $cnt = $cEnd/10;   
    $a = [];
    for ($i=0; $i < $cnt; $i++) 
        $a[] = $i;
}

function fArrI() {
    global $cEnd, $cnt;
    $cnt = $cEnd/10;   
    $a = [];
    for ($i=0; $i < $cnt; $i++) 
        $a[] = ["null$i", "eins$i", "zwei$i", "drei$i", "vier$i", "fuenf$i", "sechs$i"];
}

function fArrS() {
    global $cEnd, $cnt;
    $cnt = $cEnd/10;   
    $a = [];
    for ($i=0; $i < $cnt; $i++) 
        $a[] = ["null" => "null$i", "eins" => "eins$i", "zwei" => "zwei$i", "drei" => "drei$i", "vier" => "vier$i", "fuenf" => "fuenf$i", "sechs" => "sechs$i"];
}

function fArrA() {
    global $cEnd, $cnt;
    $cnt = $cEnd/10;   
    $a = [];
    for ($i=0; $i < $cnt; $i++) {
        $e = [];
        $e["null"] = "null$i";
        $e["eins"] = "eins$i";
        $e["zwei"] = "zwei$i"; 
        $e["drei"] = "drei$i";
        $e["vier"] = "vier$i";
        $e["fuenf"] = "fuenf$i";
        $e["sechs"] = "sechs$i";
        $a[] = $e;
    }
}

function fObj() {
    global $cEnd, $cnt;
    $cnt = $cEnd/10;
    $a = [];  
    for ($i=0; $i < $cnt; $i++) 
        $a[] = new cObj("null$i", "eins$i", "zwei$i", "drei$i", "vier$i", "fuenf$i", "sechs$i");
}

function fObjA() {
    global $cEnd, $cnt;
    $cnt = $cEnd/10;   
    $a = [];
    for ($i=0; $i < $cnt; $i++) {
        $e = new stdClass();
        $e->null = "null$i";
        $e->eins = "eins$i";
        $e->zwei = "zwei$i"; 
        $e->drei = "drei$i";
        $e->vier= "vier$i";
        $e->fuenf = "fuenf$i";
        $e->sechs = "sechs$i";
        $a[] = $e;
    }
}

function fXpld0() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $s = "ein$i zwei   drei vier  fünf sechs sieben";
        $cnt++; 
        $sum += strlen($s);
    }
}

function fXpldArr() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $s = ["ein$i", 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben'];
        $cnt++; 
        foreach ($s as $e)
            $sum += 1;
    }
}


function fXpld() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $s = "ein$i zwei   drei vier  fünf sechs sieben";
        $cnt++; 
        foreach (explode(' ', $s) as $t) {
            if (! $t)
                continue;
            $sum += 1;
        }
    }
}

function fXpldPreg() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $s = "ein$i zwei   drei vier  fünf sechs sieben";
        $cnt++; 
        foreach (preg_split('/\s+/', $s, flags: PREG_SPLIT_NO_EMPTY) as $t) {
            $sum += 1;
        }
    }
}

function fXpldFor() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $s = "ein$i zwei   drei vier  fünf sechs sieben";
        $cnt++; 
        for ($ky=0; $ky !== false and (($k = substr($s, $kx=$ky+1, (false === $ky=strpos($s, ' ', $kx)) ? null: $ky-$kx)) or true);) { 
            if (! $k)
                continue;
            $sum += 1;
        }
    }
}

function fXpldForSpn() {
    global $cEnd, $cnt, $sum;
    for ($i=0; $i < $cEnd; $i++) {
        $s = "ein$i zwei   drei vier  fünf sechs sieben";
        $cnt++; 
        for ($ky=0; $ky !== false and $k = substr($s, $kx=$ky+strspn($s, ' ', $ky), (false === $ky=strpos($s, ' ', $kx)) ? null: $ky-$kx);) { 
            $sum += 1;
        }
    }
}


outTb();
outTCF('l', 'r');
outTRH('fun', 'cnt', 'sum', 'ticks', 'utime', 'stime', 'ti/cnt ns');
#foreach(['fFor', 'fFunction', 'fVarFun', 'fIterator', 'fFiber', 'fArrNN', 'fArrI', 'fArrS', 'fArrA', 'fObj', 'fObjA', 'fArrI'] as $do){
for ($l=0; $l <3; $l++)
foreach(['fXpld0', 'fXpldArr', 'fXpld', 'fXpldPreg', 'fXpldFor', 'fXpldForSpn'] as $do) {
    $cnt = $sum = 0;
    $tB = posix_times();
    $do();
    $tA = posix_times();
    outTRD($do, $cnt, $sum
            , sprintf('%5.2f', ($ti=$tA['ticks'] - $tB['ticks'])/100), sprintf('%5.2f', ($tu=$tA['utime'] - $tB['utime'])/100)
            , sprintf('%5.2f', ($tA['stime'] - $tB['stime'])/100), $ti*1e9/$cnt);
}
outEnd(__file__);
?>