On Tue, 27 Dec 2011 19:02:29 -0800, Tim Starling <[email protected]>  
wrote:

> On 28/12/11 13:53, Daniel Friesen wrote:
>> The typical thing to go into StartProfiler.php for someone who wants to
>> use it is:
>> $wgProfiler['class'] = 'Profiler';
>>
>> ;) ie: It's pure config, it's not even php code.
>
> That's because the actual starting of the profiler happens after
> StartProfiler.php finishes but before LocalSettings.php starts. When
> you said there was no extra value to StartProfiler.php, I thought you
> were imagining some system where the profiler would be started at the
> top of LocalSettings.php
>
> Running LocalSettings.php itself is often slow, especially the
> extension setup files. So it's important that the profiler is running
> at this time.
>
> -- Tim Starling

I'm imagining the very little that goes on in StartProfiler.php (which is  
basically config) will go into LocalSettings.php, probably early on.

All that goes into StartProfiler.php is configuration of the $wgProfiler  
variable.

We load $IP/includes/profiler/Profiler.php first, right after the  
AutoLoader.
Following that we set `$wgProfiler = array();` and include  
StartProfiler.php if present.
Following that we load DefaultSettings.php and then LocalSettings.php

DefaultSettings.php doesn't invoke the profiler. So Profiler::$__instance  
is never set until the first wfProfileIn call made AFTER LocalSettings.php  
loads. Thinking about it requiring extensions probably don't even  
typically invoke the profiler anywhere within LocalSettings since anything  
like that is probably deferred into a function.

So, we're not actually running the profiler within LocalSettings.php or  
anywhere before it.

((And if we really wanted to do that, I'd almost argue for a setup where  
wfProfilerIn will queue up a deferred list of profiling entries and then  
when LocalSettings.php finishes we make a call after the inclusion that  
commits them. So that we don't have to worry about the profiler even being  
created till after the profiler config is setup))

-- 
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to