MediaWiki REL1_34
|
Profiler wrapper for XHProf extension. More...
Public Member Functions | |
__construct (array $params=[]) | |
close () | |
No-op for xhprof profiling. | |
getFunctionStats () | |
Get the aggregated inclusive profiling data for each method. | |
getOutput () | |
Returns a profiling output to be stored in debug file. | |
getRawData () | |
Retrieve raw data from xhprof. | |
getXhprofData () | |
scopedProfileIn ( $section) | |
Mark the start of a custom profiling frame (e.g. | |
Public Member Functions inherited from Profiler | |
getAllowOutput () | |
Whether appending profiles is allowed. | |
getContentType () | |
Get the Content-Type for deciding how to format appended profile output. | |
getContext () | |
Gets the context for this Profiler. | |
getProfileID () | |
getTemplated () | |
Was this call as templated or not. | |
getTransactionProfiler () | |
logData () | |
Log the data to the backing store for all ProfilerOutput instances that have one. | |
logDataPageOutputOnly () | |
Log the data to the script/request output for all ProfilerOutput instances that do so. | |
profileIn ( $functionname) | |
profileOut ( $functionname) | |
scopedProfileOut (SectionProfileCallback &$section=null) | |
setAllowOutput () | |
Enable appending profiles to standard output. | |
setContext ( $context) | |
Sets the context for this Profiler. | |
setProfileID ( $id) | |
setTemplated ( $t) | |
Mark this call as templated or not. | |
Protected Member Functions | |
getFunctionReport () | |
Get a report of profiled functions sorted by inclusive wall clock time in descending order. | |
Protected Attributes | |
SectionProfiler | $sprofiler |
Profiler for explicit, arbitrary, frame labels. | |
$xhprofData | |
Protected Attributes inherited from Profiler | |
IContextSource | $context = null |
Current request context. | |
array | $params = [] |
All of the params passed from $wgProfiler. | |
string bool | $profileID = false |
Profiler ID for bucketing data. | |
TransactionProfiler | $trxProfiler |
Private Member Functions | |
shouldExclude ( $name) | |
Check if a function or section should be excluded from the output. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Profiler | |
static | instance () |
Singleton. | |
static | replaceStubInstance (Profiler $profiler) |
Replace the current profiler with $profiler if no non-stub profiler is set. | |
Profiler wrapper for XHProf extension.
ProfilerXhprof profiles all functions using the XHProf PHP extenstion. For PHP5 users, this extension can be installed via PECL or your operating system's package manager. XHProf support is built into HHVM.
To restrict the functions for which profiling data is collected, you can use either a whitelist ($wgProfiler['include']) or a blacklist ($wgProfiler['exclude']) containing an array of function names. Shell-style patterns are also accepted.
This also supports Tideways-XHProf PHP extension, which is mostly a drop-in replacement for Xhprof (replace XHPROF_FLAGS_* with XHPROF_TIDEWAYS_FLAGS_*), as well as the older (discontinued) Tideways extension (TIDEWAYS_FLAGS_*).
Definition at line 57 of file ProfilerXhprof.php.
ProfilerXhprof::__construct | ( | array | $params = [] | ) |
array | $params |
Reimplemented from Profiler.
Definition at line 73 of file ProfilerXhprof.php.
References Profiler\$params, and Xhprof\enable().
ProfilerXhprof::close | ( | ) |
No-op for xhprof profiling.
Reimplemented from Profiler.
Definition at line 101 of file ProfilerXhprof.php.
|
protected |
Get a report of profiled functions sorted by inclusive wall clock time in descending order.
Each line of the report includes this data:
Definition at line 201 of file ProfilerXhprof.php.
References getFunctionStats().
Referenced by getOutput().
ProfilerXhprof::getFunctionStats | ( | ) |
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 be demarked with "@". This makes filtering them out easier and follows the xhprof style.
Reimplemented from Profiler.
Definition at line 132 of file ProfilerXhprof.php.
References getXhprofData(), and shouldExclude().
Referenced by getFunctionReport().
ProfilerXhprof::getOutput | ( | ) |
Returns a profiling output to be stored in debug file.
Reimplemented from Profiler.
Definition at line 181 of file ProfilerXhprof.php.
References getFunctionReport().
ProfilerXhprof::getRawData | ( | ) |
Retrieve raw data from xhprof.
Definition at line 233 of file ProfilerXhprof.php.
References getXhprofData().
ProfilerXhprof::getXhprofData | ( | ) |
Definition at line 86 of file ProfilerXhprof.php.
References $xhprofData, and Xhprof\disable().
Referenced by getFunctionStats(), and getRawData().
ProfilerXhprof::scopedProfileIn | ( | $section | ) |
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.
string | $section |
Reimplemented from Profiler.
Definition at line 93 of file ProfilerXhprof.php.
|
private |
Check if a function or section should be excluded from the output.
string | $name | Function or section name. |
Definition at line 110 of file ProfilerXhprof.php.
Referenced by getFunctionStats().
|
protected |
Profiler for explicit, arbitrary, frame labels.
Definition at line 67 of file ProfilerXhprof.php.
|
protected |
Definition at line 61 of file ProfilerXhprof.php.
Referenced by getXhprofData().