Browse Source

Merge pull request #898 from franzliedke/patch-13

[Profiler] Display page rendering time & memory usage
Dayle Rees 12 years ago
parent
commit
da35e257fd
3 changed files with 18 additions and 1 deletions
  1. 12 0
      laravel/helpers.php
  2. 4 1
      laravel/profiling/profiler.php
  3. 2 0
      laravel/profiling/template.blade.php

+ 12 - 0
laravel/helpers.php

@@ -580,4 +580,16 @@ function get_cli_option($option, $default = null)
 	}
 	}
 
 
 	return value($default);
 	return value($default);
+}
+	
+/**
+ * Calculate the human-readable file size (with proper units).
+ *
+ * @param  int     $size
+ * @return string
+ */
+function get_file_size($size)
+{
+	$units = array('Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+	return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2).' '.$units[$i];
 }
 }

+ 4 - 1
laravel/profiling/profiler.php

@@ -14,7 +14,7 @@ class Profiler {
 	 * @var array
 	 * @var array
 	 */
 	 */
 	protected static $data = array('queries' => array(), 'logs' => array());
 	protected static $data = array('queries' => array(), 'logs' => array());
-
+	
 	/**
 	/**
 	 * Get the rendered contents of the Profiler.
 	 * Get the rendered contents of the Profiler.
 	 *
 	 *
@@ -28,6 +28,9 @@ class Profiler {
 		// type applications, so we will not send anything in those scenarios.
 		// type applications, so we will not send anything in those scenarios.
 		if ( ! Request::ajax())
 		if ( ! Request::ajax())
 		{
 		{
+			static::$data['memory'] = get_file_size(memory_get_usage(true));
+			static::$data['memory_peak'] = get_file_size(memory_get_peak_usage(true));
+			static::$data['time'] = number_format((microtime(true) - LARAVEL_START) * 1000, 2);
 			return render('path: '.__DIR__.'/template'.BLADE_EXT, static::$data);
 			return render('path: '.__DIR__.'/template'.BLADE_EXT, static::$data);
 		}
 		}
 	}
 	}

+ 2 - 0
laravel/profiling/template.blade.php

@@ -61,6 +61,8 @@
 				@endif
 				@endif
 			</a>
 			</a>
 		</li>
 		</li>
+		<li><a class="anbu-tab">Time <span class="anbu-count">{{ $time }}ms</span></a></li>
+		<li><a class="anbu-tab">Memory <span class="anbu-count">{{ $memory }} ({{ $memory_peak }})</span></a></li>
 		<li class="anbu-tab-right"><a id="anbu-hide" href="#">&#8614;</a></li>
 		<li class="anbu-tab-right"><a id="anbu-hide" href="#">&#8614;</a></li>
 		<li class="anbu-tab-right"><a id="anbu-close" href="#">&times;</a></li>
 		<li class="anbu-tab-right"><a id="anbu-close" href="#">&times;</a></li>
 		<li class="anbu-tab-right"><a id="anbu-zoom" href="#">&#8645;</a></li>
 		<li class="anbu-tab-right"><a id="anbu-zoom" href="#">&#8645;</a></li>