PhpBench\Benchmark\Runner::runVariant PHP Method

runVariant() private method

private runVariant ( PhpBench\Benchmark\ExecutorInterface $executor, RunnerContext $context, SubjectMetadata $subjectMetadata, Variant $variant )
$executor PhpBench\Benchmark\ExecutorInterface
$context RunnerContext
$subjectMetadata PhpBench\Benchmark\Metadata\SubjectMetadata
$variant PhpBench\Model\Variant
    private function runVariant(ExecutorInterface $executor, RunnerContext $context, SubjectMetadata $subjectMetadata, Variant $variant)
    {
        $executorConfig = $this->executorRegistry->getConfig($context->getExecutor());
        $this->logger->variantStart($variant);
        $rejectCount = [];
        try {
            foreach ($variant->getIterations() as $iteration) {
                $rejectCount[spl_object_hash($iteration)] = 0;
                $this->runIteration($executor, $executorConfig, $iteration, $subjectMetadata);
            }
        } catch (\Exception $e) {
            $variant->setException($e);
            $this->logger->variantEnd($variant);
            if ($context->getStopOnError()) {
                throw new StopOnErrorException();
            }
            return;
        }
        $variant->computeStats();
        $this->logger->variantEnd($variant);
        while ($variant->getRejectCount() > 0) {
            $this->logger->retryStart($variant->getRejectCount());
            $this->logger->variantStart($variant);
            foreach ($variant->getRejects() as $reject) {
                $rejectCount[spl_object_hash($reject)]++;
                $this->runIteration($executor, $executorConfig, $reject, $subjectMetadata);
            }
            $variant->computeStats();
            $this->logger->variantEnd($variant);
            $reject->setResult(new RejectionCountResult($rejectCount[spl_object_hash($reject)]));
        }
    }