addDescription( 'Benchmark MediaWiki Hooks.' ); } public function execute() { $cases = [ 'Loaded 0 hooks' => 0, 'Loaded 1 hook' => 1, 'Loaded 10 hooks' => 10, 'Loaded 100 hooks' => 100, ]; $benches = []; $hookContainer = $this->getHookContainer(); foreach ( $cases as $label => $load ) { $benches[$label] = [ 'setup' => function () use ( $load, $hookContainer ) { for ( $i = 1; $i <= $load; $i++ ) { $hookContainer->register( 'Test', [ $this, 'test' ] ); } }, 'function' => static function () use ( $hookContainer ) { $hookContainer->run( 'Test' ); } ]; } $this->bench( $benches ); } /** * @return bool */ public function test() { return true; } } // @codeCoverageIgnoreStart $maintClass = BenchmarkHooks::class; require_once RUN_MAINTENANCE_IF_MAIN; // @codeCoverageIgnoreEnd