I have a parser tag <foo> that does its setup with the ParserFirstCallInit hook (MW 1.17.0):
$wgHooks['ParserFirstCallInit'][] = 'efFoo';
function efFoo(&$parser) {
foreach ($lotsOfStuff as $stuff) {
// do stuff...
}
}
The callback seemed to be slowing down all wiki pages, so I dug into it and discovered something surprising (to me). 50% of the time in the loop is spent processing three wfMsg() calls:
function efFoo(&$parser) {
...
foreach ($lotsOfStuff as $stuff) {
...
$one = wfMsg('one');
$two = wfMsg('two');
$three = wfMsg('three');
...
}
}
Is wfMsg() usually slow like this? We are specifying the system message cache in LocalSettings.php before my extension is included, so I thought this would make wfMsg() faster:
$wgMainCacheType = CACHE_ACCEL;
$wgCacheDirectory = '/var/cache/mediawiki';
Maybe the cache isn't set up yet at ParserFirstCallInit time? Any insight appreciated. Thanks!
DanB