Added percentages to ProfilerSimpleText
authorAaron Schulz <aaron@users.mediawiki.org>
Tue, 5 Jul 2011 06:39:07 +0000 (06:39 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Tue, 5 Jul 2011 06:39:07 +0000 (06:39 +0000)
includes/profiler/ProfilerSimpleText.php

index 49ad02b..b049d5a 100644 (file)
  * @ingroup Profiler
  */
 class ProfilerSimpleText extends ProfilerSimple {
-       public $visible=false; /* Show as <PRE> or <!-- ? */
+       public $visible = false; /* Show as <PRE> or <!-- ? */
        static private $out;
 
        public function __construct( $profileConfig ) {
-               if( isset( $profileConfig['visible'] ) && $profileConfig['visible'] ) {
+               if ( isset( $profileConfig['visible'] ) && $profileConfig['visible'] ) {
                        $this->visible = true;
                }
                parent::__construct( $profileConfig );
        }
 
        public function logData() {
-               if($this->mTemplated) {
-                       uasort($this->mCollated,array('self','sort'));
-                       array_walk($this->mCollated,array('self','format'));
-                       if ($this->visible) {
+               if ( $this->mTemplated ) {
+                       $this->close();
+                       $totalReal = $this->mCollated['-total']['real'];
+                       uasort( $this->mCollated, array('self','sort') );
+                       array_walk( $this->mCollated, array('self','format'), $totalReal );
+                       if ( $this->visible ) {
                                print '<pre>'.self::$out.'</pre>';
                        } else {
                                print "<!--\n".self::$out."\n-->\n";
@@ -38,6 +40,12 @@ class ProfilerSimpleText extends ProfilerSimple {
        }
 
        /* dense is good */
-       static function sort($a,$b) { return $a['real']<$b['real']; /* sort descending by time elapsed */ }
-       static function format($item,$key) { self::$out .= sprintf("%3.6f %6d - %s\n",$item['real'],$item['count'], $key); }
+       static function sort( $a, $b ) {
+               return $a['real'] < $b['real']; /* sort descending by time elapsed */
+       }
+
+       static function format( $item, $key, $totalReal ) {
+               self::$out .= sprintf( "%6.2f%% %3.6f %6d - %s\n",
+                       $item['real']/$totalReal*100, $item['real'], $item['count'], $key );
+       }
 }