3v4l.org

run code in 500+ PHP versions simultaneously
<?php var_dump(ini_get('memory_limit')); $i = 0; $fx = function (int $fiberNumber): void { $res = array_map(function ($str) use ($fiberNumber) { global $i, $fx, $fibers; if (($i++ % 1_000) === 0) { var_dump($i . ' @' . $fiberNumber); return $fibers[$fiberNumber + 1]->start(); } if ($i > 50_000) { return $fiberNumber; } return $fx($fiberNumber); }, ['x']); Fiber::suspend($res); }; $fibers = []; foreach (range(0, 99) as $fi) { $fibers[] = new Fiber(fn() => $fx($fi)); } $res = $fibers[0]->start(); print_r($res);

preferences:
23.25 ms | 478 KiB | 4 Q