<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); | |
/** | |
* CodeIgniter | |
* | |
* An open source application development framework for PHP 4.3.2 or newer | |
* | |
* @package CodeIgniter | |
* @author ExpressionEngine Dev Team | |
* @copyright Copyright (c) 2006, EllisLab, Inc. | |
* @license http://codeigniter.com/user_guide/license.html | |
* @link http://codeigniter.com | |
* @since Version 1.0 | |
* @filesource | |
*/ | |
// ------------------------------------------------------------------------ | |
/** | |
* CodeIgniter Benchmark Class | |
* | |
* This class enables you to mark points and calculate the time difference | |
* between them. Memory consumption can also be displayed. | |
* | |
* @package CodeIgniter | |
* @subpackage Libraries | |
* @category Libraries | |
* @author ExpressionEngine Dev Team | |
* @link http://codeigniter.com/user_guide/libraries/benchmark.html | |
*/ | |
class CI_Benchmark { | |
var $marker = array(); | |
// -------------------------------------------------------------------- | |
/** | |
* Set a benchmark marker | |
* | |
* Multiple calls to this function can be made so that several | |
* execution points can be timed | |
* | |
* @access public | |
* @param string $name name of the marker | |
* @return void | |
*/ | |
function mark($name) | |
{ | |
$this->marker[$name] = microtime(); | |
} | |
// -------------------------------------------------------------------- | |
/** | |
* Calculates the time difference between two marked points. | |
* | |
* If the first parameter is empty this function instead returns the | |
* {elapsed_time} pseudo-variable. This permits the full system | |
* execution time to be shown in a template. The output class will | |
* swap the real value for this variable. | |
* | |
* @access public | |
* @param string a particular marked point | |
* @param string a particular marked point | |
* @param integer the number of decimal places | |
* @return mixed | |
*/ | |
function elapsed_time($point1 = '', $point2 = '', $decimals = 4) | |
{ | |
if ($point1 == '') | |
{ | |
return '{elapsed_time}'; | |
} | |
if ( ! isset($this->marker[$point1])) | |
{ | |
return ''; | |
} | |
if ( ! isset($this->marker[$point2])) | |
{ | |
$this->marker[$point2] = microtime(); | |
} | |
list($sm, $ss) = explode(' ', $this->marker[$point1]); | |
list($em, $es) = explode(' ', $this->marker[$point2]); | |
return number_format(($em + $es) - ($sm + $ss), $decimals); | |
} | |
// -------------------------------------------------------------------- | |
/** | |
* Memory Usage | |
* | |
* This function returns the {memory_usage} pseudo-variable. | |
* This permits it to be put it anywhere in a template | |
* without the memory being calculated until the end. | |
* The output class will swap the real value for this variable. | |
* | |
* @access public | |
* @return string | |
*/ | |
function memory_usage() | |
{ | |
return '{memory_usage}'; | |
} | |
} | |
// END CI_Benchmark class | |
?> |