ci源码分析--libraries/Benchmark
<?phpif ( ! defined('BASEPATH')) exit('不允许直接访问');
/*
范例:
$BM = new Benchmark();
$BM->mark('FIRST_MARK');
$BM->mark('SECOND_MARK');
echo $BM->elapsed('FIRST_MARK', 'SECOND_MARK');
*/
class Benchmark {
var $marker = array();
//设定一个时间标记
function mark($name)
{
$this->marker[$name] = microtime();
}
//计算时间
function elapsed_time($point1 = '', $point2 = '', $decimals = 4)
{
//如果第一个参数为空函数将返回伪变量 {elapsed_time}。这将在模板中显示系统[指某个http请求]运行的总时长。
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);
}
}
?>
Benchmark类很有用,很方便的插入脚本的任意地方,计算执行速度,对于速度调优很有帮助,在真正运行程序后,可以关掉这个功能,在核心文件和控制器类里面注解掉就行了 看了几篇你的教程,基本上没有实质性内容讲解么,为什么还放在高级教程区?不明白:o Benchmark 用在项目中作基准分析 还是小牛的
页:
[1]