class ProfilerSimple extends Profiler {
var $mMinimumTime = 0;
var $mProfileID = false;
+ var $mTemplated = false;
function __construct() {
global $wgRequestTime, $wgRUstart;
}
}
+ /**
+ * Mark this call as templated or not
+ * @param boolean $t
+ */
+ function setTemplated( $t ) {
+ $this->mTemplated = $t;
+ }
+
function profileIn($functionname) {
global $wgDebugFunctionEntry;
if ($wgDebugFunctionEntry) {
/**
* The least sophisticated profiler output class possible, view your source! :)
*
- * Put it to StartProfiler.php like this:
+ * Put the following 3 lines in StartProfiler.php:
*
* require_once( dirname( __FILE__ ) . '/includes/ProfilerSimpleText.php' );
* $wgProfiler = new ProfilerSimpleText;
*/
class ProfilerSimpleText extends ProfilerSimple {
public $visible=false; /* Show as <PRE> or <!-- ? */
+ static private $out;
function getFunctionReport() {
- global $wgRequest;
- if ( $wgRequest->getVal( 'action' ) == 'raw' ) # bug 20388
- return;
+ global $wgRequest, $wgOut;
- if ($this->visible) print "<pre>";
- else print "<!--\n";
- uasort($this->mCollated,array('self','sort'));
- array_walk($this->mCollated,array('self','format'));
- if ($this->visible) print "</pre>\n";
- else print "-->\n";
+ if($this->mTemplated) {
+ uasort($this->mCollated,array('self','sort'));
+ array_walk($this->mCollated,array('self','format'));
+ if ($this->visible) {
+ print '<pre>'.self::$out.'</pre>';
+ } else {
+ print '<!--\n'.self::$out.'\n-->\n';
+ }
+ }
}
/* dense is good */
static function sort($a,$b) { return $a['real']<$b['real']; /* sort descending by time elapsed */ }
- static function format($item,$key) { printf("%3.6f %6d - %s\n",$item['real'],$item['count'], $key); }
+ static function format($item,$key) { self::$out .= sprintf("%3.6f %6d - %s\n",$item['real'],$item['count'], $key); }
}
global $wgMaxCredits, $wgShowCreditsIfMax;
global $wgPageShowWatchingUsers;
global $wgUseTrackbacks, $wgUseSiteJs, $wgDebugComments;
- global $wgArticlePath, $wgScriptPath, $wgServer;
+ global $wgArticlePath, $wgScriptPath, $wgServer, $wgProfiler;
wfProfileIn( __METHOD__ );
+ $wgProfiler->setTemplated(true);
$oldid = $wgRequest->getVal( 'oldid' );
$diff = $wgRequest->getVal( 'diff' );