SiteConfiguration micro-optimisations


SiteConfiguration micro-optimisations

  • Various micro-optimisations
  • Allow explicit declaration of keys subject to replacement. Benchmarked in combination with config change Id2a4984206d8d3ffa87fd.

Instruction counts for 5000 calls to SiteConfiguration::getAll() with
WMF production InitialiseSettings.php:

Baseline: 32917907951
Append substr elimination and branch reduction 1: 32037254885
Append branch reduction 2: 31660558873
Remove +$wiki is_array() validation: 31457575132
Break out $params to eliminate hot array lookup: 31059867214
Remove parameter type declarations on hot function: 30484234275
Remove +$tag is_array() validation: 29382351810
Replace $done flag with goto: 28959087504
@replaceableSettings: 24045764501

I confirmed that the enwiki output array is unchanged.

Change-Id: I4139a87fd296edb790af0d039b566f7008886274