/**
* CodeIgniter
*
* An open source application development framework for PHP 5.1.6 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2008 - 2011, 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 {
/**
* List of all benchmark markers and when they were added
* Array used to store benchmark class tags
* @var array
*/
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)
{
// When a method is called anywhere in the program, the current time point will be recorded.
$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 no clear time point is given, the running time of the entire program will be calculated.
* How can we calculate the running time of the entire program? In fact, it is the Output component that performs this calculation.
* When calling Benchmark::elapsed_time(); (no parameters), what is actually returned first is not
* It is impossible to measure the running time of the entire program. What is actually returned is an {elapsed_time} tag, and then
* When Output is processing the output, it calculates the entire program running time, because the program can be viewed during the output processing stage
* Since it is in the final stage, the total time can be approximately calculated, and then the {elapsed_time} in the output can be replaced.
* The principle of memory_usage() below is the same.
*/
if ($point1 == '')
{
Return '{elapset_time}';
} }
if ( ! isset($this->marker[$point1]))
{
return '';
} }
if ( ! isset($this->marker[$point2]))
{
$this->marker[$point2] = microtime();
} }
//Why list is used here is because microtime(); returns the value in the format of "msec sec".
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.
* www.2cto.com
* @access public
* @return string
*/
function memory_usage()
{
return '{memory_usage}';
}
}
// END CI_Benchmark class
/* End of file Benchmark.php */
/* Location: ./system/core/Benchmark.php */
http://www.bkjia.com/PHPjc/477730.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477730.htmlTechArticle[php] ?php if ( ! defined(BASEPATH)) exit(No direct script access allowed); /* * * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @packag...