Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function execute(SubjectMetadata $subjectMetadata, Iteration $iteration, Config $config)
 {
     // add 100 bytes of memory.
     $memory = 100;
     $iteration->setResult(new MemoryResult($memory, $memory, $memory));
     if (!$config['times']) {
         $iteration->setResult(new TimeResult(0));
         return;
     }
     $variantHash = spl_object_hash($iteration->getVariant());
     if (!isset($this->variantTimes[$variantHash])) {
         $this->variantTimes[$variantHash] = $config['times'];
     }
     if (!isset($this->variantTimes[$variantHash][$this->index])) {
         $this->index = 0;
     }
     $time = $this->variantTimes[$variantHash][$this->index];
     $this->index++;
     if ($config['spread']) {
         $index = $iteration->getIndex() % count($config['spread']);
         $spreadDiff = $config['spread'][$index];
         $time = $time + $spreadDiff;
     }
     $iteration->setResult(new TimeResult($time));
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function launch(Payload $payload, Iteration $iteration, Config $options)
 {
     $phpConfig = ['max_execution_time' => 0];
     $payload->setPhpConfig($phpConfig);
     $result = $payload->launch();
     if (isset($result['buffer']) && $result['buffer']) {
         throw new \RuntimeException(sprintf('Benchmark made some noise: %s', $result['buffer']));
     }
     $iteration->setResult(new TimeResult($result['time']));
     $iteration->setResult(MemoryResult::fromArray($result['mem']));
 }