getIterationRows() public method

public getIterationRows ( PhpBench\Expression\Constraint\Constraint $constraint )
$constraint PhpBench\Expression\Constraint\Constraint
Exemplo n.º 1
0
 /**
  * Load a SuiteCollection for the given query (constraint).
  *
  * @param Constraint $constraint
  *
  * @return SuiteCollection
  */
 public function load(Constraint $constraint)
 {
     $rows = $this->repository->getIterationRows($constraint);
     $context = new \ArrayObject([self::BENCHMARKS => [], self::SUBJECTS => [], self::VARIANTS => [], self::SUITES => []]);
     foreach ($rows as $row) {
         $suite = $this->getSuite($context, $row);
         $benchmark = $this->getBenchmark($context, $suite, $row);
         $subject = $this->getSubject($context, $benchmark, $row);
         $variant = $this->getVariant($context, $subject, $row);
         $iteration = new Iteration(0, $variant, [new TimeResult((int) $row['iteration.time']), new MemoryResult((int) $row['iteration.memory'], 0, 0)]);
         $variant->addIteration($iteration);
     }
     foreach ($context[self::SUITES] as $suite) {
         foreach ($suite->getVariants() as $variant) {
             $variant->computeStats();
         }
     }
     return new SuiteCollection($context[self::SUITES]);
 }