X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=profileinfo.php;h=8120599e02f0a879a25df08b980dfa910f30eec9;hb=38a86002080ce3badedf78e856d5a5122b198d42;hp=885a9e9f4412d7a34bb9b66c9452045cddfc1152;hpb=7bb29a97ae51ce8c74599871f8e688e72aac2811;p=lhc%2Fweb%2Fwiklou.git
diff --git a/profileinfo.php b/profileinfo.php
index 885a9e9f44..8120599e02 100644
--- a/profileinfo.php
+++ b/profileinfo.php
@@ -28,12 +28,7 @@
ini_set( 'zlib.output_compression', 'off' );
$wgEnableProfileInfo = $wgProfileToDatabase = false;
-if ( isset( $_SERVER['MW_COMPILED'] ) ) {
- require ( 'core/includes/WebStart.php' );
-} else {
- require ( __DIR__ . '/includes/WebStart.php' );
-}
-
+require __DIR__ . '/includes/WebStart.php';
header( 'Content-Type: text/html; charset=utf-8' );
@@ -41,106 +36,105 @@ header( 'Content-Type: text/html; charset=utf-8' );
-
-Profiling data
-
+ hr {
+ margin: 20px 0;
+ border: 0;
+ border-top: 1px solid #eee;
+ border-bottom: 1px solid #fff;
+ }
+
tableExists( 'profiling' ) ) {
+if ( !$dbr->tableExists( 'profiling' ) ) {
echo 'No profiling
table exists, so we can\'t show you anything.
'
. 'If you want to log profiling data, enable $wgProfileToDatabase
'
. ' in your LocalSettings.php and run maintenance/update.php
to'
@@ -163,9 +157,11 @@ if( !$dbr->tableExists( 'profiling' ) ) {
}
$expand = array();
-if ( isset( $_REQUEST['expand'] ) )
- foreach( explode( ',', $_REQUEST['expand'] ) as $f )
+if ( isset( $_REQUEST['expand'] ) ) {
+ foreach ( explode( ',', $_REQUEST['expand'] ) as $f ) {
$expand[$f] = true;
+ }
+}
class profile_point {
var $name;
@@ -212,10 +208,12 @@ class profile_point {
$extet = " [â]";
}
?>
-
-
- name() ) ) . $extet ?>
- |
+
+
+
+ name() ) ) . $extet ?>
+
+ |
time() / self::$totaltime * 100 ); ?> |
memory() / self::$totalmemory * 100 ); ?> |
count(); ?> |
@@ -224,7 +222,7 @@ class profile_point {
memoryPerCall() / 1024 ), 2 ); ?> |
time() / self::$totalcount ), 2 ); ?> |
memory() / self::$totalcount / 1024 ), 2 ); ?> |
-
+
children as $child ) {
@@ -274,135 +272,141 @@ class profile_point {
}
};
-function compare_point(profile_point $a, profile_point $b) {
+function compare_point( profile_point $a, profile_point $b ) {
global $sort;
switch ( $sort ) {
- case 'name':
- 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;
+ case 'name':
+ 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', '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 ) )
+if ( isset( $_REQUEST['sort'] ) && in_array( $_REQUEST['sort'], $sorts ) ) {
$sort = $_REQUEST['sort'];
+}
$res = $dbr->select( 'profiling', '*', array(), 'profileinfo.php', array( 'ORDER BY' => 'pf_name ASC' ) );
-if (isset( $_REQUEST['filter'] ) )
+if ( isset( $_REQUEST['filter'] ) ) {
$filter = $_REQUEST['filter'];
-else
+} else {
$filter = '';
+}
?>
-
- Name |
- Time (%) |
- Memory (%) |
- Count |
- Calls/req |
- ms/call |
- kb/call |
- ms/req |
- kb/req |
-
+
+ Name |
+ Time (%) |
+ Memory (%) |
+ Count |
+ Calls/req |
+ ms/call |
+ kb/call |
+ ms/req |
+ kb/req |
+
- $_filter ? $_filter : $filter,
- 'sort' => $_sort ? $_sort : $sort,
- 'expand' => implode( ',', array_keys( $_expand ) )
- ) )
- );
-}
+ pf_name, $o->pf_count, $o->pf_time, $o->pf_memory );
- if( $next->name() == '-total' ) {
- profile_point::$totaltime = $next->time();
- profile_point::$totalcount = $next->count();
- profile_point::$totalmemory = $next->memory();
- }
- if ( $last !== false ) {
- if ( preg_match( '/^'.preg_quote( $last->name(), '/' ).'/', $next->name() ) ) {
- $last->add_child($next);
- continue;
+ function getEscapedProfileUrl( $_filter = false, $_sort = false, $_expand = false ) {
+ global $filter, $sort, $expand;
+
+ if ( $_expand === false ) {
+ $_expand = $expand;
+ }
+
+ return htmlspecialchars(
+ '?' .
+ wfArrayToCgi( array(
+ 'filter' => $_filter ? $_filter : $filter,
+ 'sort' => $_sort ? $_sort : $sort,
+ 'expand' => implode( ',', array_keys( $_expand ) )
+ ) )
+ );
+ }
+
+ $points = array();
+ $queries = array();
+ $sqltotal = 0.0;
+
+ $last = false;
+ foreach ( $res as $o ) {
+ $next = new profile_point( $o->pf_name, $o->pf_count, $o->pf_time, $o->pf_memory );
+ if ( $next->name() == '-total' ) {
+ profile_point::$totaltime = $next->time();
+ profile_point::$totalcount = $next->count();
+ profile_point::$totalmemory = $next->memory();
+ }
+ if ( $last !== false ) {
+ if ( preg_match( '/^' . preg_quote( $last->name(), '/' ) . '/', $next->name() ) ) {
+ $last->add_child( $next );
+ continue;
+ }
+ }
+ $last = $next;
+ if ( preg_match( '/^query: /', $next->name() ) || preg_match( '/^query-m: /', $next->name() ) ) {
+ $sqltotal += $next->time();
+ $queries[] = $next;
+ } else {
+ $points[] = $next;
}
}
- $last = $next;
- if ( preg_match( '/^query: /', $next->name() ) || preg_match( '/^query-m: /', $next->name() ) ) {
- $sqltotal += $next->time();
- $queries[] = $next;
- } else {
- $points[] = $next;
- }
-}
-$s = new profile_point( 'SQL Queries', 0, $sqltotal, 0, 0 );
-foreach ( $queries as $q )
- $s->add_child($q);
-$points[] = $s;
+ $s = new profile_point( 'SQL Queries', 0, $sqltotal, 0, 0 );
+ foreach ( $queries as $q ) {
+ $s->add_child( $q );
+ }
+ $points[] = $s;
-usort( $points, 'compare_point' );
+ usort( $points, 'compare_point' );
-foreach ( $points as $point ) {
- if ( strlen( $filter ) && !strstr( $point->name(), $filter ) )
- continue;
+ foreach ( $points as $point ) {
+ if ( strlen( $filter ) && !strstr( $point->name(), $filter ) ) {
+ continue;
+ }
- $point->display( $expand );
-}
-?>
+ $point->display( $expand );
+ }
+ ?>
-Total time:
-Total memory:
-
+Total time:
+
+Total memory:
+