// Improved profiling tool
This commit is contained in:
1 parent
d05968823e
commit
f204f80c99
1 file changed
+24
-2
@@ -101,6 +101,16 @@ abstract class Controller extends ControllerCore
|
|||||||
return '<span style="color:green">'.round($n, 2).' Mb</span>';
|
return '<span style="color:green">'.round($n, 2).' Mb</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function displayPeakMemoryColor($n)
|
||||||
|
{
|
||||||
|
$n /= 1048576;
|
||||||
|
if ($n > 16)
|
||||||
|
return '<span style="color:red">'.round($n, 1).' Mb</span>';
|
||||||
|
if ($n > 12)
|
||||||
|
return '<span style="color:orange">'.round($n, 1).' Mb</span>';
|
||||||
|
return '<span style="color:green">'.round($n, 1).' Mb</span>';
|
||||||
|
}
|
||||||
|
|
||||||
private function displaySQLQueries($n)
|
private function displaySQLQueries($n)
|
||||||
{
|
{
|
||||||
if ($n > 150)
|
if ($n > 150)
|
||||||
@@ -178,10 +188,12 @@ abstract class Controller extends ControllerCore
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
$this->_memory['config'] = memory_get_usage();
|
$this->_memory['config'] = memory_get_usage();
|
||||||
|
$this->_mempeak['config'] = memory_get_peak_usage();
|
||||||
$this->_time['config'] = microtime(true);
|
$this->_time['config'] = microtime(true);
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->_memory['constructor'] = memory_get_usage();
|
$this->_memory['constructor'] = memory_get_usage();
|
||||||
|
$this->_mempeak['constructor'] = memory_get_peak_usage();
|
||||||
$this->_time['constructor'] = microtime(true);
|
$this->_time['constructor'] = microtime(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,21 +201,25 @@ abstract class Controller extends ControllerCore
|
|||||||
{
|
{
|
||||||
$this->init();
|
$this->init();
|
||||||
$this->_memory['init'] = memory_get_usage();
|
$this->_memory['init'] = memory_get_usage();
|
||||||
|
$this->_mempeak['init'] = memory_get_peak_usage();
|
||||||
$this->_time['init'] = microtime(true);
|
$this->_time['init'] = microtime(true);
|
||||||
|
|
||||||
if ($this->checkAccess())
|
if ($this->checkAccess())
|
||||||
{
|
{
|
||||||
$this->_memory['checkAccess'] = memory_get_usage();
|
$this->_memory['checkAccess'] = memory_get_usage();
|
||||||
|
$this->_mempeak['checkAccess'] = memory_get_peak_usage();
|
||||||
$this->_time['checkAccess'] = microtime(true);
|
$this->_time['checkAccess'] = microtime(true);
|
||||||
|
|
||||||
if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
|
if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
|
||||||
$this->setMedia();
|
$this->setMedia();
|
||||||
$this->_memory['setMedia'] = memory_get_usage();
|
$this->_memory['setMedia'] = memory_get_usage();
|
||||||
|
$this->_mempeak['setMedia'] = memory_get_peak_usage();
|
||||||
$this->_time['setMedia'] = microtime(true);
|
$this->_time['setMedia'] = microtime(true);
|
||||||
|
|
||||||
// postProcess handles ajaxProcess
|
// postProcess handles ajaxProcess
|
||||||
$this->postProcess();
|
$this->postProcess();
|
||||||
$this->_memory['postProcess'] = memory_get_usage();
|
$this->_memory['postProcess'] = memory_get_usage();
|
||||||
|
$this->_mempeak['postProcess'] = memory_get_peak_usage();
|
||||||
$this->_time['postProcess'] = microtime(true);
|
$this->_time['postProcess'] = microtime(true);
|
||||||
|
|
||||||
if (!empty($this->redirect_after))
|
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)))
|
if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
|
||||||
$this->initHeader();
|
$this->initHeader();
|
||||||
$this->_memory['initHeader'] = memory_get_usage();
|
$this->_memory['initHeader'] = memory_get_usage();
|
||||||
|
$this->_mempeak['initHeader'] = memory_get_peak_usage();
|
||||||
$this->_time['initHeader'] = microtime(true);
|
$this->_time['initHeader'] = microtime(true);
|
||||||
|
|
||||||
$this->initContent();
|
$this->initContent();
|
||||||
$this->_memory['initContent'] = memory_get_usage();
|
$this->_memory['initContent'] = memory_get_usage();
|
||||||
|
$this->_mempeak['initContent'] = memory_get_peak_usage();
|
||||||
$this->_time['initContent'] = microtime(true);
|
$this->_time['initContent'] = microtime(true);
|
||||||
|
|
||||||
if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className)))
|
if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className)))
|
||||||
$this->initFooter();
|
$this->initFooter();
|
||||||
$this->_memory['initFooter'] = memory_get_usage();
|
$this->_memory['initFooter'] = memory_get_usage();
|
||||||
|
$this->_mempeak['initFooter'] = memory_get_peak_usage();
|
||||||
$this->_time['initFooter'] = microtime(true);
|
$this->_time['initFooter'] = microtime(true);
|
||||||
|
|
||||||
// default behavior for ajax process is to use $_POST[action] or $_GET[action]
|
// 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->display();
|
||||||
$this->_memory['display'] = memory_get_usage();
|
$this->_memory['display'] = memory_get_usage();
|
||||||
|
$this->_mempeak['display'] = memory_get_peak_usage();
|
||||||
$this->_time['display'] = microtime(true);
|
$this->_time['display'] = microtime(true);
|
||||||
|
|
||||||
if (!$this->ini_get_display_errors())
|
if (!$this->ini_get_display_errors())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
$memory_peak_usage = memory_get_peak_usage();
|
||||||
|
|
||||||
$hr = '<hr style="color:#F5F5F5;margin:2px" />';
|
$hr = '<hr style="color:#F5F5F5;margin:2px" />';
|
||||||
|
|
||||||
$totalSize = 0;
|
$totalSize = 0;
|
||||||
@@ -341,14 +363,14 @@ abstract class Controller extends ControllerCore
|
|||||||
echo '</ul>
|
echo '</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
<div class="rte" style="text-align:left;padding:8px;float:left;margin-left:20px">
|
||||||
<b>Memory peak usage</b>: '.$this->displayMemoryColor(memory_get_peak_usage());
|
<b>Memory peak usage</b>: '.$this->displayPeakMemoryColor($memory_peak_usage);
|
||||||
if (self::$_footer)
|
if (self::$_footer)
|
||||||
{
|
{
|
||||||
echo '<ul>';
|
echo '<ul>';
|
||||||
$last_memory = 0;
|
$last_memory = 0;
|
||||||
foreach ($this->_memory as $k => $memory)
|
foreach ($this->_memory as $k => $memory)
|
||||||
{
|
{
|
||||||
echo '<li>'.$k.': '.$this->displayMemoryColor($memory - $last_memory).'</li>';
|
echo '<li>'.$k.': '.$this->displayMemoryColor($memory - $last_memory).' ('.$this->displayPeakMemoryColor($this->_mempeak[$k]).')</li>';
|
||||||
$last_memory = $memory;
|
$last_memory = $memory;
|
||||||
}
|
}
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
|
|||||||
Reference in new issue
Block a user