/** * Start a new benchmark * * @param string $name Unique identifier like e.g. Class::Method (\Foobar\MyClass::doSomething) * @param array $metadata Additional metadata * @param string $component Name of the component which triggered the benchmark, e.g. "App", "Database" * @return BenchmarkInterface The started benchmark */ public function start($name, array $metadata = [], $component = null) { $benchmark = BenchmarkFactory::getBenchmark($name, $metadata, $component); $benchmark->start(); $this->addBenchmark($benchmark); return $benchmark; }
/** * @covers Fabfuel\Prophiler\Profiler::__construct * @covers Fabfuel\Prophiler\Profiler::count * @covers Fabfuel\Prophiler\Profiler::addBenchmark * @covers Fabfuel\Prophiler\Profiler::getBenchmarks * @uses Fabfuel\Prophiler\Benchmark\BenchmarkFactory * @uses Fabfuel\Prophiler\Benchmark\Benchmark */ public function testAddAndCountBenchmarks() { $benchmark1 = BenchmarkFactory::getBenchmark('fooabar'); $benchmark2 = BenchmarkFactory::getBenchmark('lorem'); $benchmark3 = BenchmarkFactory::getBenchmark('ipsum'); $profiler = $this->profiler->addBenchmark($benchmark1)->addBenchmark($benchmark2)->addBenchmark($benchmark3); $this->assertSame($profiler, $this->profiler); $this->assertSame(3, $this->profiler->count()); $benchmarks = $this->profiler->getBenchmarks(); $this->assertTrue(isset($benchmarks[spl_object_hash($benchmark1)])); $this->assertTrue(isset($benchmarks[spl_object_hash($benchmark2)])); $this->assertTrue(isset($benchmarks[spl_object_hash($benchmark3)])); }