icebolt 发表于 2009-3-11 11:30:00

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);
}
}
?>

icebolt 发表于 2009-3-11 11:31:54

Benchmark类很有用,很方便的插入脚本的任意地方,计算执行速度,对于速度调优很有帮助,在真正运行程序后,可以关掉这个功能,在核心文件和控制器类里面注解掉就行了

mahone 发表于 2010-6-10 11:19:33

看了几篇你的教程,基本上没有实质性内容讲解么,为什么还放在高级教程区?不明白:o

阳光笑脸 发表于 2012-3-1 22:02:39

Benchmark 用在项目中作基准分析 还是小牛的
页: [1]
查看完整版本: ci源码分析--libraries/Benchmark