用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8626|回复: 3
收起左侧

ci源码分析--libraries/Benchmark

[复制链接]
发表于 2009-3-11 11:30:00 | 显示全部楼层 |阅读模式
PHP复制代码
 
<?php  if ( ! 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);
 }
}
?>
 
复制代码
 楼主| 发表于 2009-3-11 11:31:54 | 显示全部楼层
Benchmark类很有用,很方便的插入脚本的任意地方,计算执行速度,对于速度调优很有帮助,在真正运行程序后,可以关掉这个功能,在核心文件和控制器类里面注解掉就行了
发表于 2010-6-10 11:19:33 | 显示全部楼层
看了几篇你的教程,基本上没有实质性内容讲解么,为什么还放在高级教程区?不明白
发表于 2012-3-1 22:02:39 | 显示全部楼层
Benchmark 用在项目中作基准分析 还是小牛的

本版积分规则