Throws an invalid argument exception if the name has
already been registered.
public addBaselineCallable ( $name, $callable ) |
private function registerBenchmark(Container $container) { $container->register('benchmark.runner', function (Container $container) { return new Runner($container->get('benchmark.benchmark_finder'), $container->get('benchmark.registry.executor'), $container->get('environment.supplier'), $container->getParameter('retry_threshold'), $container->getParameter('config_path')); }); $container->register('benchmark.executor.microtime', function (Container $container) { return new MicrotimeExecutor($container->get('benchmark.remote.launcher')); }, ['benchmark_executor' => ['name' => 'microtime']]); $container->register('benchmark.executor.debug', function (Container $container) { return new DebugExecutor($container->get('benchmark.remote.launcher')); }, ['benchmark_executor' => ['name' => 'debug']]); $container->register('benchmark.finder', function (Container $container) { return new Finder(); }); $container->register('benchmark.remote.launcher', function (Container $container) { return new Launcher(new PayloadFactory(), new ExecutableFinder(), $container->hasParameter('bootstrap') ? $container->getParameter('bootstrap') : null, $container->hasParameter('php_binary') ? $container->getParameter('php_binary') : null, $container->hasParameter('php_config') ? $container->getParameter('php_config') : null, $container->hasParameter('php_wrapper') ? $container->getParameter('php_wrapper') : null); }); $container->register('benchmark.remote.reflector', function (Container $container) { return new Reflector($container->get('benchmark.remote.launcher')); }); $container->register('benchmark.annotation_reader', function (Container $container) { return new AnnotationReader($container->getParameter('annotation_import_use')); }); $container->register('benchmark.metadata.driver.annotation', function (Container $container) { return new AnnotationDriver($container->get('benchmark.remote.reflector'), $container->getParameter('subject_pattern'), $container->get('benchmark.annotation_reader')); }); $container->register('benchmark.metadata_factory', function (Container $container) { return new Factory($container->get('benchmark.remote.reflector'), $container->get('benchmark.metadata.driver.annotation')); }); $container->register('benchmark.benchmark_finder', function (Container $container) { return new BenchmarkFinder($container->get('benchmark.metadata_factory'), $container->get('benchmark.finder')); }); $container->register('benchmark.baseline_manager', function (Container $container) { $manager = new BaselineManager(); $callables = array_merge(['nothing' => '\\PhpBench\\Benchmark\\Baseline\\Baselines::nothing', 'md5' => '\\PhpBench\\Benchmark\\Baseline\\Baselines::md5', 'file_rw' => '\\PhpBench\\Benchmark\\Baseline\\Baselines::fwriteFread'], $container->getParameter('env_baseline_callables')); foreach ($callables as $name => $callable) { $manager->addBaselineCallable($name, $callable); } return $manager; }); $container->register('benchmark.time_unit', function (Container $container) { return new TimeUnit(TimeUnit::MICROSECONDS, $container->getParameter('time_unit')); }); }