From f204f80c99b4994c064e29caf0e413899a6cee61 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 2 Jul 2013 11:08:24 +0200 Subject: [PATCH] // Improved profiling tool --- tools/profiling/Controller.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/tools/profiling/Controller.php b/tools/profiling/Controller.php index 58569008d..846248e32 100644 --- a/tools/profiling/Controller.php +++ b/tools/profiling/Controller.php @@ -101,6 +101,16 @@ abstract class Controller extends ControllerCore return ''.round($n, 2).' Mb'; } + private function displayPeakMemoryColor($n) + { + $n /= 1048576; + if ($n > 16) + return ''.round($n, 1).' Mb'; + if ($n > 12) + return ''.round($n, 1).' Mb'; + return ''.round($n, 1).' Mb'; + } + private function displaySQLQueries($n) { if ($n > 150) @@ -178,10 +188,12 @@ abstract class Controller extends ControllerCore return; $this->_memory['config'] = memory_get_usage(); + $this->_mempeak['config'] = memory_get_peak_usage(); $this->_time['config'] = microtime(true); parent::__construct(); $this->_memory['constructor'] = memory_get_usage(); + $this->_mempeak['constructor'] = memory_get_peak_usage(); $this->_time['constructor'] = microtime(true); } @@ -189,21 +201,25 @@ abstract class Controller extends ControllerCore { $this->init(); $this->_memory['init'] = memory_get_usage(); + $this->_mempeak['init'] = memory_get_peak_usage(); $this->_time['init'] = microtime(true); if ($this->checkAccess()) { $this->_memory['checkAccess'] = memory_get_usage(); + $this->_mempeak['checkAccess'] = memory_get_peak_usage(); $this->_time['checkAccess'] = microtime(true); if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) $this->setMedia(); $this->_memory['setMedia'] = memory_get_usage(); + $this->_mempeak['setMedia'] = memory_get_peak_usage(); $this->_time['setMedia'] = microtime(true); // postProcess handles ajaxProcess $this->postProcess(); $this->_memory['postProcess'] = memory_get_usage(); + $this->_mempeak['postProcess'] = memory_get_peak_usage(); $this->_time['postProcess'] = microtime(true); if (!empty($this->redirect_after)) @@ -212,15 +228,18 @@ abstract class Controller extends ControllerCore if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) $this->initHeader(); $this->_memory['initHeader'] = memory_get_usage(); + $this->_mempeak['initHeader'] = memory_get_peak_usage(); $this->_time['initHeader'] = microtime(true); $this->initContent(); $this->_memory['initContent'] = memory_get_usage(); + $this->_mempeak['initContent'] = memory_get_peak_usage(); $this->_time['initContent'] = microtime(true); if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className))) $this->initFooter(); $this->_memory['initFooter'] = memory_get_usage(); + $this->_mempeak['initFooter'] = memory_get_peak_usage(); $this->_time['initFooter'] = microtime(true); // default behavior for ajax process is to use $_POST[action] or $_GET[action] @@ -279,11 +298,14 @@ abstract class Controller extends ControllerCore $this->display(); $this->_memory['display'] = memory_get_usage(); + $this->_mempeak['display'] = memory_get_peak_usage(); $this->_time['display'] = microtime(true); if (!$this->ini_get_display_errors()) return; + $memory_peak_usage = memory_get_peak_usage(); + $hr = '
'; $totalSize = 0; @@ -341,14 +363,14 @@ abstract class Controller extends ControllerCore echo '
- Memory peak usage: '.$this->displayMemoryColor(memory_get_peak_usage()); + Memory peak usage: '.$this->displayPeakMemoryColor($memory_peak_usage); if (self::$_footer) { echo '';