MediaWiki REL1_34
benchmarkHooks.php
Go to the documentation of this file.
1<?php
24require_once __DIR__ . '/Benchmarker.php';
25
32 protected $defaultCount = 10;
33
34 public function __construct() {
35 parent::__construct();
36 $this->addDescription( 'Benchmark MediaWiki Hooks.' );
37 }
38
39 public function execute() {
40 $cases = [
41 'Loaded 0 hooks' => 0,
42 'Loaded 1 hook' => 1,
43 'Loaded 10 hooks' => 10,
44 'Loaded 100 hooks' => 100,
45 ];
46 $benches = [];
47 foreach ( $cases as $label => $load ) {
48 $benches[$label] = [
49 'setup' => function () use ( $load ) {
50 global $wgHooks;
51 $wgHooks['Test'] = [];
52 for ( $i = 1; $i <= $load; $i++ ) {
53 $wgHooks['Test'][] = [ $this, 'test' ];
54 }
55 },
56 'function' => function () {
57 Hooks::run( 'Test' );
58 }
59 ];
60 }
61 $this->bench( $benches );
62 }
63
67 public function test() {
68 return true;
69 }
70}
71
72$maintClass = BenchmarkHooks::class;
73require_once RUN_MAINTENANCE_IF_MAIN;
$wgHooks
Global list of hooks.
const RUN_MAINTENANCE_IF_MAIN
$maintClass
Maintenance script that benchmarks MediaWiki hooks.
__construct()
Default constructor.
execute()
Do the actual work.
Base class for benchmark scripts.
bench(array $benchs)
addDescription( $text)
Set the description text.