add($method, $path, function() { return true; }); } return $array; } function runIterations(int $iterations, $r, array $routes) { echo "Running $iterations iterations\n"; $start = microtime(true); $interval = $iterations / 10; for ($i = 0; $i < $iterations; $i++) { // pick a random route from the array [$method, $uri] = $routes[array_rand($routes)]; $res = $r->lookup($method, $uri); if ($res !== 200) { echo Color::red("Failed to handle request for $uri - $res\n"); exit(1); } if ($i !== 0 && $i % ($interval) === 0) echoMemoryAndTime($i, $start); } echo "Time: " . Color::cyan(number_format(microtime(true) - $start, 10) . " s\n"); // echo the average time per request echo "Avg/lookup: " . Color::yellow(number_format((microtime(true) - $start) / $iterations, 10) . " s\n"); echo "\n"; }