/** * Make measurements for each ValueObject given. * Return a Result object. * * @param ValueObject[] $valueObjects * * @return Result */ public function measureAll($valueObjects) { // init result $result = new Result(); $result->setReference($this->getName()); $result->setIterations(count($valueObjects)); // init start values $min = 9999999999999999; $max = 0; $total = 0; // make test for each value object foreach ($valueObjects as $valueObject) { $time = $this->measure($valueObject); $min = $min < $time ? $min : $time; $max = $max > $time ? $max : $time; $total += $time; } // save results in object $result->setAvg($total / count($valueObjects)); $result->setMin($min); $result->setMax($max); return $result; }
/** * Print the result * * @param Result $result * @param OutputInterface $output * @param bool $showMinMax */ protected function printResult(Result $result, OutputInterface $output, $showMinMax = false) { $output->writeln(sprintf("\nResult for:\t%s", $result->getReference())); if ($showMinMax) { $output->writeln(sprintf("Min. time:\t%01.3f ms\t%01.0f%%", $result->getMin() * 1000, $result->getMinPercentage())); $output->writeln(sprintf("Max. time:\t%01.3f ms\t%01.0f%%", $result->getMax() * 1000, $result->getMaxPercentage())); } $output->writeln(sprintf("Avg. time:\t%01.3f ms\t%01.0f%%", $result->getAvg() * 1000, $result->getAvgPercentage())); }