New file |
0,0 → 1,113 |
<?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) 2008, 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 |
|
/* End of file Benchmark.php */ |
/* Location: ./system/libraries/Benchmark.php */ |