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

[中级] CodeIgniter源码阅读(3)Benchmark.php基准测试类

[复制链接]
发表于 2012-3-29 15:51:56 | 显示全部楼层 |阅读模式
本帖最后由 actionbi 于 2012-3-29 15:54 编辑

//@基准测试类被load_class('Benchmark', 'core')到了CodeIgniter.php中,所以也是一个可以全局使用的类。
//如需使用只需要定义时间点即可。$BM->mare('flag_start') 和 $BM->mark('flag_end')
函数不难读懂,其实就是将标记的时间点的时间保存到数组中,然后如果要想求得特定时间段的程序运行时间时,只需要将两个时间点的microtime()做减法.本人初读CI源码,目光浅陋。文中如有错误,劳烦邮件到actionbi2010@gmail.com 我会立马登陆论坛修改

PHP复制代码
 
class CI_Benchmark {
 
        var $marker = array();
 
        function mark($name)
        {
                $this->marker[$name] = microtime();
        }
 
        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);
        }
 
 
        function memory_usage()
        {
                return '{memory_usage}';
        }
 
}
 
复制代码



发表于 2013-9-5 12:10:41 | 显示全部楼层
return '{memory_usage}';  是什么意思
发表于 2013-9-5 15:06:55 | 显示全部楼层
mckee1990 发表于 2013-9-5 12:10
return '{memory_usage}';  是什么意思

意思就是返回这个字符串啊,这个字符串会被解析成实际的内存使用数
发表于 2013-9-5 15:16:40 | 显示全部楼层
Hex 发表于 2013-9-5 15:06
意思就是返回这个字符串啊,这个字符串会被解析成实际的内存使用数

在哪里去解析的啊
发表于 2013-9-5 15:19:21 | 显示全部楼层
mckee1990 发表于 2013-9-5 15:16
在哪里去解析的啊

在 Output.php 里解析的。

看 324 行的 _display 方法。

发表于 2013-9-5 15:23:14 | 显示全部楼层
Hex 发表于 2013-9-5 15:19
在 Output.php 里解析的。

看 324 行的 _display 方法。

哦  看到了 memory_get_usage  还没看到那个地方  多谢

本版积分规则