Blame | Last modification | View Log | RSS feed
<?php/*** Timer Panel Element** PHP 5** CakePHP(tm) : Rapid Development Framework (http://cakephp.org)* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)** Licensed under The MIT License* Redistributions of files must retain the above copyright notice.** @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)* @link http://cakephp.org CakePHP(tm) Project* @since DebugKit 0.1* @license http://www.opensource.org/licenses/mit-license.php MIT License*/$this->Number = $this->Helpers->load('Number');$this->SimpleGraph = $this->Helpers->load('DebugKit.SimpleGraph');if (!isset($debugKitInHistoryMode)):$timers = DebugTimer::getAll(true);$currentMemory = DebugKitDebugger::getMemoryUse();$peakMemory = DebugKitDebugger::getPeakMemoryUse();$requestTime = DebugTimer::requestTime();else:$content = $this->Toolbar->readCache('timer', $this->request->params['pass'][0]);if (is_array($content)):extract($content);endif;endif;?><div class="debug-info"><h2><?php echo __d('debug_kit', 'Memory'); ?></h2><div class="peak-mem-use"><?phpecho $this->Toolbar->message(__d('debug_kit', 'Peak Memory Use'), $this->Number->toReadableSize($peakMemory)); ?></div><?php$headers = array(__d('debug_kit', 'Message'), __d('debug_kit', 'Memory use'));$memoryPoints = DebugKitDebugger::getMemoryPoints();$rows = array();foreach ($memoryPoints as $key => $value):$rows[] = array($key, $this->Number->toReadableSize($value));endforeach;echo $this->Toolbar->table($rows, $headers);?></div><div class="debug-info debug-timers"><h2><?php echo __d('debug_kit', 'Timers'); ?></h2><div class="request-time"><?php $totalTime = __d('debug_kit', '%s (ms)', $this->Number->precision($requestTime * 1000, 0)); ?><?php echo $this->Toolbar->message(__d('debug_kit', 'Total Request Time:'), $totalTime)?></div><?php$rows = array();$end = end($timers);$maxTime = $end['end'];$headers = array(__d('debug_kit', 'Message'),__d('debug_kit', 'Time in ms'),__d('debug_kit', 'Graph'));$i = 0;$values = array_values($timers);foreach ($timers as $timerName => $timeInfo):$indent = 0;for ($j = 0; $j < $i; $j++) {if (($values[$j]['end'] > $timeInfo['start']) && ($values[$j]['end']) > ($timeInfo['end'])) {$indent++;}}$indent = str_repeat(' » ', $indent);$rows[] = array($indent . $timeInfo['message'],$this->Number->precision($timeInfo['time'] * 1000, 2),$this->SimpleGraph->bar($this->Number->precision($timeInfo['time'] * 1000, 2),$this->Number->precision($timeInfo['start'] * 1000, 2),array('max' => $maxTime * 1000,'requestTime' => $requestTime * 1000,)));$i++;endforeach;if (strtolower($this->Toolbar->getName()) === 'firephptoolbar'):for ($i = 0, $len = count($rows); $i < $len; $i++):unset($rows[$i][2]);endfor;unset($headers[2]);endif;echo $this->Toolbar->table($rows, $headers, array('title' => 'Timers'));if (!isset($debugKitInHistoryMode)):$this->Toolbar->writeCache('timer', compact('timers', 'currentMemory', 'peakMemory', 'requestTime'));endif;?></div>