X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=profileinfo.php;h=ef038c1153ce92e2cbe22fc6d51635b0ecbd71c6;hb=0eff0c6c97e332120f4160f65cfeed5d15c479c5;hp=afc05eb5c0bb924a19a744e8992929a55f0f33e9;hpb=59b60fc31194b3b09bba2c95b8ddf85c3f9e81bb;p=lhc%2Fweb%2Fwiklou.git diff --git a/profileinfo.php b/profileinfo.php index afc05eb5c0..ef038c1153 100644 --- a/profileinfo.php +++ b/profileinfo.php @@ -1,35 +1,43 @@ - Profiling data @@ -48,16 +56,20 @@ require_once( './includes/WebStart.php' ); text-align: right; } td.timep, td.tpc, td.tpr { - background-color: #fffff0; + background-color: #ffff80; } td.memoryp, td.mpc, td.mpr { - background-color: #f0f8ff; + background-color: #80f8ff; } td.count, td,cpr { - background-color: #f0fff0; + background-color: #80ff80; } td.name { - background-color: #f9f9f9; + background-color: #89f9f9; + } + + tr:hover { + font-weight: bold; } @@ -65,7 +77,19 @@ require_once( './includes/WebStart.php' ); Disabled

\n"; + echo ""; + exit( 1 ); +} + +$dbr = wfGetDB( DB_SLAVE ); + +if( !$dbr->tableExists( 'profiling' ) ) { + echo "

No 'profiling' table exists, so we can't show you anything.

\n"; + echo "

If you want to log profiling data, create the table using " + . "maintenance/archives/patch-profiling.sql and enable " + . "\$wgProfileToDatabase.

\n"; + echo ""; exit( 1 ); } @@ -80,7 +104,9 @@ class profile_point { var $time; var $children; - function profile_point( $name, $count, $time, $memory ) { + static $totaltime, $totalmemory, $totalcount; + + function __construct( $name, $count, $time, $memory ) { $this->name = $name; $this->count = $count; $this->time = $time; @@ -92,45 +118,46 @@ class profile_point { $this->children[] = $child; } - function display($indent = 0.0) { - global $expand, $totaltime, $totalmemory, $totalcount; + function display( $expand, $indent = 0.0 ) { usort( $this->children, 'compare_point' ); - $extet = ''; - if ( isset( $expand[$this->name()] ) ) - $ex = true; - else $ex = false; + $ex = isset( $expand[$this->name()] ); + if ( !$ex ) { if ( count( $this->children ) ) { - $url = makeurl( false, false, $expand + array( $this->name() => true ) ); + $url = getEscapedProfileUrl( false, false, $expand + array( $this->name() => true ) ); $extet = " [+]"; - } else $extet = ''; + } else { + $extet = ''; + } } else { $e = array(); - foreach ( $expand as $name => $ep ) - if ( $name != $this->name() ) + foreach ( $expand as $name => $ep ) { + if ( $name != $this->name() ) { $e += array( $name => $ep ); + } + } - $extet = " [–]"; + $extet = " [–]"; } ?> name() ) . $extet ?> - time() / $totaltime * 100 ) ?> - memory() / $totalmemory * 100 ) ?> + time() / self::$totaltime * 100 ) ?> + memory() / self::$totalmemory * 100 ) ?> count() ?> callsPerRequest() ), 2 ) ?> timePerCall() ), 2 ) ?> memoryPerCall() / 1024 ), 2 ) ?> - time() / $totalcount ), 2 ) ?> - memory() / $totalcount / 1024 ), 2 ) ?> + time() / self::$totalcount ), 2 ) ?> + memory() / self::$totalcount / 1024 ), 2 ) ?> children as $child ) { - $child->display( $indent + 2 ); + $child->display( $expand, $indent + 2 ); } } } @@ -160,18 +187,15 @@ class profile_point { } function callsPerRequest() { - global $totalcount; - return @( $this->count / $totalcount ); + return @( $this->count / self::$totalcount ); } function timePerRequest() { - global $totalcount; - return @( $this->time / $totalcount ); + return @( $this->time / self::$totalcount ); } function memoryPerRequest() { - global $totalcount; - return @( $this->memory / $totalcount ); + return @( $this->memory / self::$totalcount ); } function fmttime() { @@ -179,7 +203,7 @@ class profile_point { } }; -function compare_point( $a, $b ) { +function compare_point(profile_point $a, profile_point $b) { global $sort; switch ( $sort ) { case "name": @@ -209,8 +233,6 @@ $sort = 'time'; if ( isset( $_REQUEST['sort'] ) && in_array( $_REQUEST['sort'], $sorts ) ) $sort = $_REQUEST['sort']; - -$dbr = wfGetDB( DB_SLAVE ); $res = $dbr->select( 'profiling', '*', array(), 'profileinfo.php', array( 'ORDER BY' => 'pf_name ASC' ) ); if (isset( $_REQUEST['filter'] ) ) @@ -230,31 +252,35 @@ else - - - - - - - - - + + + + + + + + + $_filter ? $_filter : $filter, + 'sort' => $_sort ? $_sort : $sort, + 'expand' => implode( ',', array_keys( $_expand ) ) + ) ) + ); } $points = array(); @@ -265,9 +291,9 @@ $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' ) { - $totaltime = $next->time(); - $totalcount = $next->count(); - $totalmemory = $next->memory(); + 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() ) ) { @@ -295,12 +321,12 @@ foreach ( $points as $point ) { if ( strlen( $filter ) && !strstr( $point->name(), $filter ) ) continue; - $point->display(); + $point->display( $expand ); } ?>
NameTime (%)Memory (%)CountCalls/reqms/callkb/callms/reqkb/reqNameTime (%)Memory (%)CountCalls/reqms/callkb/callms/reqkb/req
-

Total time:

-

Total memory:

+

Total time:

+

Total memory: