MediaWiki  master
Profiler Class Reference

Profiler base class that defines the interface and some shared functionality. More...

Inheritance diagram for Profiler:
Collaboration diagram for Profiler:

Public Member Functions

 __construct (array $params)
 
 close ()
 Close opened profiling sections. More...
 
 getAllowOutput ()
 Whether appending profiles is allowed. More...
 
 getContentType ()
 Get the Content-Type for deciding how to format appended profile output. More...
 
 getContext ()
 Gets the context for this Profiler. More...
 
 getFunctionStats ()
 Get the aggregated inclusive profiling data for each method. More...
 
 getOutput ()
 Returns a profiling output to be stored in debug file. More...
 
 getProfileID ()
 
 getTemplated ()
 Was this call as templated or not. More...
 
 getTransactionProfiler ()
 
 logData ()
 Log the data to the backing store for all ProfilerOutput instances that have one. More...
 
 logDataPageOutputOnly ()
 Log the data to the script/request output for all ProfilerOutput instances that do so. More...
 
 profileIn ( $functionname)
 
 profileOut ( $functionname)
 
 scopedProfileIn ( $section)
 Mark the start of a custom profiling frame (e.g. More...
 
 scopedProfileOut (SectionProfileCallback &$section=null)
 
 setAllowOutput ()
 Enable appending profiles to standard output. More...
 
 setContext ( $context)
 Sets the context for this Profiler. More...
 
 setProfileID ( $id)
 
 setTemplated ( $t)
 Mark this call as templated or not. More...
 

Static Public Member Functions

static instance ()
 Singleton. More...
 
static replaceStubInstance (Profiler $profiler)
 Replace the current profiler with $profiler if no non-stub profiler is set. More...
 

Protected Attributes

IContextSource $context = null
 Current request context. More...
 
LoggerInterface $logger
 
array $params = []
 All of the params passed from $wgProfiler. More...
 
string bool $profileID = false
 Profiler ID for bucketing data. More...
 
TransactionProfiler $trxProfiler
 

Private Member Functions

 getOutputs ()
 Get all usable outputs. More...
 

Private Attributes

bool $allowOutput = false
 

Static Private Attributes

static Profiler $instance = null
 

Detailed Description

Profiler base class that defines the interface and some shared functionality.

Definition at line 36 of file Profiler.php.

Constructor & Destructor Documentation

◆ __construct()

Profiler::__construct ( array  $params)
Parameters
array$paramsSee $wgProfiler.

Reimplemented in ProfilerXhprof, ProfilerSectionOnly, and ProfilerExcimer.

Definition at line 56 of file Profiler.php.

References $params.

Member Function Documentation

◆ close()

Profiler::close ( )
abstract

Close opened profiling sections.

Reimplemented in ProfilerXhprof, ProfilerStub, ProfilerSectionOnly, and ProfilerExcimer.

◆ getAllowOutput()

Profiler::getAllowOutput ( )

Whether appending profiles is allowed.

Since
1.34
Returns
bool

Definition at line 331 of file Profiler.php.

References $allowOutput.

Referenced by getTemplated().

◆ getContentType()

Profiler::getContentType ( )

Get the Content-Type for deciding how to format appended profile output.

Disabled by default. Enable via setAllowOutput().

See also
ProfilerOutputText
Since
1.25
Returns
string|null Returns null if disabled or no Content-Type found.

Definition at line 283 of file Profiler.php.

References $header.

◆ getContext()

Profiler::getContext ( )

Gets the context for this Profiler.

Returns
IContextSource
Since
1.25

Definition at line 144 of file Profiler.php.

References $context, and RequestContext\getMain().

Referenced by logData().

◆ getFunctionStats()

Profiler::getFunctionStats ( )
abstract

Get the aggregated inclusive profiling data for each method.

The percent time for each time is based on the current "total" time used is based on all methods so far. This method can therefore be called several times in between several profiling calls without the delays in usage of the profiler skewing the results. A "-total" entry is always included in the results.

When a call chain involves a method invoked within itself, any entries for the cyclic invocation should be demarked with "@". This makes filtering them out easier and follows the xhprof style.

Returns
array[] List of method entries arrays, each having:
  • name : method name
  • calls : the number of invoking calls
  • real : real time elapsed (ms)
  • real : percent real time
  • cpu : CPU time elapsed (ms)
  • cpu : percent CPU time
  • memory : memory used (bytes)
  • memory : percent memory used
  • min_real : min real time in a call (ms)
  • max_real : max real time in a call (ms)
Since
1.25

Reimplemented in ProfilerXhprof, ProfilerStub, ProfilerSectionOnly, and ProfilerExcimer.

Referenced by logData(), and logDataPageOutputOnly().

◆ getOutput()

Profiler::getOutput ( )
abstract

Returns a profiling output to be stored in debug file.

Returns
string

Reimplemented in ProfilerXhprof, ProfilerStub, ProfilerSectionOnly, and ProfilerExcimer.

◆ getOutputs()

Profiler::getOutputs ( )
private

Get all usable outputs.

Exceptions
MWException
Returns
ProfilerOutput[]
Since
1.25

Definition at line 199 of file Profiler.php.

Referenced by logData(), and logDataPageOutputOnly().

◆ getProfileID()

Profiler::getProfileID ( )
Returns
string

Definition at line 120 of file Profiler.php.

References $profileID, and WikiMap\getCurrentWikiDbDomain().

◆ getTemplated()

Profiler::getTemplated ( )

Was this call as templated or not.

Deprecated:
since 1.34 Use getAllowOutput() instead.
Returns
bool

Definition at line 311 of file Profiler.php.

References getAllowOutput(), and wfDeprecated().

◆ getTransactionProfiler()

Profiler::getTransactionProfiler ( )
Returns
TransactionProfiler
Since
1.25

Definition at line 183 of file Profiler.php.

References $trxProfiler.

◆ instance()

◆ logData()

Profiler::logData ( )

Log the data to the backing store for all ProfilerOutput instances that have one.

Since
1.25

Reimplemented in ProfilerStub.

Definition at line 224 of file Profiler.php.

References getContext(), getFunctionStats(), and getOutputs().

◆ logDataPageOutputOnly()

Profiler::logDataPageOutputOnly ( )

Log the data to the script/request output for all ProfilerOutput instances that do so.

Exceptions
MWException
Since
1.26

Reimplemented in ProfilerStub.

Definition at line 254 of file Profiler.php.

References getFunctionStats(), and getOutputs().

◆ profileIn()

Profiler::profileIn (   $functionname)

Definition at line 154 of file Profiler.php.

References wfDeprecated().

◆ profileOut()

Profiler::profileOut (   $functionname)

Definition at line 158 of file Profiler.php.

References wfDeprecated().

◆ replaceStubInstance()

static Profiler::replaceStubInstance ( Profiler  $profiler)
staticfinal

Replace the current profiler with $profiler if no non-stub profiler is set.

Parameters
Profiler$profiler
Exceptions
MWException
Since
1.25

Definition at line 102 of file Profiler.php.

Referenced by Maintenance\activateProfiler().

◆ scopedProfileIn()

Profiler::scopedProfileIn (   $section)
abstract

Mark the start of a custom profiling frame (e.g.

DB queries). The frame ends when the result of this method falls out of scope.

Parameters
string$section
Returns
ScopedCallback|null
Since
1.25

Reimplemented in ProfilerXhprof, ProfilerStub, ProfilerSectionOnly, and ProfilerExcimer.

◆ scopedProfileOut()

Profiler::scopedProfileOut ( SectionProfileCallback $section = null)
Parameters
SectionProfileCallback | null&$section

Definition at line 175 of file Profiler.php.

◆ setAllowOutput()

Profiler::setAllowOutput ( )

Enable appending profiles to standard output.

Since
1.34

Definition at line 321 of file Profiler.php.

◆ setContext()

Profiler::setContext (   $context)

Sets the context for this Profiler.

Parameters
IContextSource$context
Since
1.25

Definition at line 134 of file Profiler.php.

References $context.

◆ setProfileID()

Profiler::setProfileID (   $id)
Parameters
string$id

Definition at line 113 of file Profiler.php.

◆ setTemplated()

Profiler::setTemplated (   $t)

Mark this call as templated or not.

Deprecated:
since 1.34 Use setAllowOutput() instead.
Parameters
bool$t

Definition at line 300 of file Profiler.php.

References $t, true, and wfDeprecated().

Member Data Documentation

◆ $allowOutput

bool Profiler::$allowOutput = false
private

Definition at line 48 of file Profiler.php.

Referenced by getAllowOutput().

◆ $context

IContextSource Profiler::$context = null
protected

Current request context.

Definition at line 42 of file Profiler.php.

Referenced by getContext(), and setContext().

◆ $instance

Profiler Profiler::$instance = null
staticprivate

Definition at line 51 of file Profiler.php.

Referenced by instance().

◆ $logger

LoggerInterface Profiler::$logger
protected

Definition at line 46 of file Profiler.php.

◆ $params

array Profiler::$params = []
protected

All of the params passed from $wgProfiler.

Definition at line 40 of file Profiler.php.

Referenced by __construct(), ProfilerExcimer\__construct(), ProfilerSectionOnly\__construct(), ProfilerXhprof\__construct(), and instance().

◆ $profileID

string bool Profiler::$profileID = false
protected

Profiler ID for bucketing data.

Definition at line 38 of file Profiler.php.

Referenced by getProfileID().

◆ $trxProfiler

TransactionProfiler Profiler::$trxProfiler
protected

Definition at line 44 of file Profiler.php.

Referenced by getTransactionProfiler().


The documentation for this class was generated from the following file: