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 = []; foreach ( $cases as $label => $load ) { $benches[$label] = [ 'setup' => function () use ( $load ) { global $wgHooks; $wgHooks['Test'] = []; for ( $i = 1; $i <= $load; $i++ ) { $wgHooks['Test'][] = [ $this, 'test' ]; } }, 'function' => function () { Hooks::run( 'Test' ); } ]; } $this->bench( $benches ); } /** * @return bool */ public function test() { return true; } } $maintClass = BenchmarkHooks::class; require_once RUN_MAINTENANCE_IF_MAIN;