PhpBench\Benchmark\Runner::runSubject PHP Method

runSubject() private method

private runSubject ( PhpBench\Benchmark\ExecutorInterface $executor, RunnerContext $context, Subject $subject, SubjectMetadata $subjectMetadata )
$executor PhpBench\Benchmark\ExecutorInterface
$context RunnerContext
$subject PhpBench\Model\Subject
$subjectMetadata PhpBench\Benchmark\Metadata\SubjectMetadata
    private function runSubject(ExecutorInterface $executor, RunnerContext $context, Subject $subject, SubjectMetadata $subjectMetadata)
    {
        $parameterSets = $context->getParameterSets($subjectMetadata->getParameterSets());
        $paramsIterator = new CartesianParameterIterator($parameterSets);
        // create the variants.
        foreach ($paramsIterator as $parameterSet) {
            foreach ($subjectMetadata->getIterations() as $nbIterations) {
                foreach ($subjectMetadata->getRevs() as $revolutions) {
                    foreach ($subjectMetadata->getWarmup() as $warmup) {
                        $variant = $subject->createVariant($parameterSet, $revolutions, $warmup);
                        $variant->spawnIterations($nbIterations);
                    }
                }
            }
        }
        // run the variants.
        foreach ($subject->getVariants() as $variant) {
            $this->runVariant($executor, $context, $subjectMetadata, $variant);
        }
        return $subject;
    }