From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001
From: Pierre Schmitz
-
children as $child)
+ if ($ex) {
+ foreach ($this->children as $child) {
$child->display($indent + 2);
+ }
+ }
}
function name() {
@@ -133,6 +152,33 @@ class profile_point {
function time() {
return $this->time;
}
+
+ function memory() {
+ return $this->memory;
+ }
+
+ function timePerCall() {
+ return @($this->time / $this->count);
+ }
+
+ function memoryPerCall() {
+ return @($this->memory / $this->count);
+ }
+
+ function callsPerRequest() {
+ global $totalcount;
+ return @($this->count / $totalcount);
+ }
+
+ function timePerRequest() {
+ global $totalcount;
+ return @($this->time / $totalcount);
+ }
+
+ function memoryPerRequest() {
+ global $totalcount;
+ return @($this->memory / $totalcount);
+ }
function fmttime() {
return sprintf("%5.02f", $this->time);
@@ -146,12 +192,24 @@ function compare_point($a, $b) {
return strcmp($a->name(), $b->name());
case "time":
return $a->time() > $b->time() ? -1 : 1;
+ case "memory":
+ return $a->memory() > $b->memory() ? -1 : 1;
case "count":
return $a->count() > $b->count() ? -1 : 1;
+ case "time_per_call":
+ return $a->timePerCall() > $b->timePerCall() ? -1 : 1;
+ case "memory_per_call":
+ return $a->memoryPerCall() > $b->memoryPerCall() ? -1 : 1;
+ case "calls_per_req":
+ return $a->callsPerRequest() > $b->callsPerRequest() ? -1 : 1;
+ case "time_per_req":
+ return $a->timePerRequest() > $b->timePerRequest() ? -1 : 1;
+ case "memory_per_req":
+ return $a->memoryPerRequest() > $b->memoryPerRequest() ? -1 : 1;
}
}
-$sorts = array("time", "count", "name");
+$sorts = array("time","memory","count","calls_per_req","name","time_per_call","memory_per_call","time_per_req","memory_per_req");
$sort = 'time';
if (isset($_REQUEST['sort']) && in_array($_REQUEST['sort'], $sorts))
$sort = $_REQUEST['sort'];
@@ -160,8 +218,8 @@ $dbh = mysql_connect($wgDBserver, $wgDBadminuser, $wgDBadminpassword)
or die("mysql server failed: " . mysql_error());
mysql_select_db($wgDBname, $dbh) or die(mysql_error($dbh));
$res = mysql_query("
- SELECT pf_count, pf_time, pf_name
- FROM profiling
+ SELECT pf_count, pf_time, pf_memory, pf_name
+ FROM {$wgDBprefix}profiling
ORDER BY pf_name ASC
", $dbh) or die("query failed: " . mysql_error());
@@ -179,17 +237,22 @@ else $filter = '';
fmttime() ?>
- time() / $totaltime * 100 ) ?>
- count() ?>
- count() / $totalcount ), 2 ) ?>
-
+
name()) . $extet ?>
+ time() / $totaltime * 100 ) ?>
+ memory() / $totalmemory * 100 ) ?>
+ count() ?>
+ callsPerRequest() ), 2 ) ?>
+ timePerCall() ), 2 ) ?>
+ memoryPerCall() / 1024 ), 2 ) ?>
+ time() / $totalcount ), 2 ) ?>
+ memory() / $totalcount / 1024 ), 2 ) ?>
">Time | -Time (%) | -">Count | -Avg calls per request | ">Name | +">Time (%) | +">Memory (%) | +">Count | +">Calls/req | +">ms/call | +">kb/call | +">ms/req | +">kb/req |
---|
Total time:
+Total time:
+Total memory: