コード例 #1
0
ファイル: AthleticEvent.php プロジェクト: lmaslowski/athletic
 /**
  * @param string $method
  * @param int    $annotations
  *
  * @return MethodResults
  */
 private function runMethodBenchmark($method, $annotations)
 {
     $iterations = $annotations['iterations'];
     $avgCalibration = $this->getCalibrationTime($iterations);
     $results = array();
     for ($i = 0; $i < $iterations; ++$i) {
         $this->setUp();
         $results[$i] = $this->timeMethod($method) - $avgCalibration;
         $this->tearDown();
     }
     $finalResults = $this->methodResultsFactory->create($method, $results, $iterations);
     $this->setOptionalAnnotations($finalResults, $annotations);
     return $finalResults;
 }
コード例 #2
0
ファイル: AthleticEvent.php プロジェクト: rindeal/athletic
 /**
  * @param string $method
  * @param Annotations $annotations
  *
  * @return MethodResults
  */
 private function runMethodBenchmark($method, $annotations)
 {
     $iterations = isset($annotations['iterations']) ? $annotations['iterations'] : PHP_INT_MAX;
     $maxRuntime = isset($annotations['maxRuntime']) ? $annotations['maxRuntime'] : PHP_INT_MAX;
     $avgCalibration = $this->getCalibrationTime(min($iterations, static::MAX_CALIBRATION_ITERATIONS));
     $start = microtime(true);
     $results = array();
     for ($i = 0; $i < $iterations; ++$i) {
         $this->setUp();
         $results[$i] = $this->timeMethod($method) - $avgCalibration;
         $this->tearDown();
         if (microtime(true) - $start >= $maxRuntime) {
             break;
         }
     }
     $finalResults = $this->methodResultsFactory->create($method, $results, count($results));
     $this->setOptionalAnnotations($finalResults, $annotations);
     return $finalResults;
 }