actionbi 发表于 2012-3-29 15:51:56

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

本帖最后由 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 我会立马登陆论坛修改


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}';
      }

}



mckee1990 发表于 2013-9-5 12:10:41

return '{memory_usage}';是什么意思

Hex 发表于 2013-9-5 15:06:55

mckee1990 发表于 2013-9-5 12:10 static/image/common/back.gif
return '{memory_usage}';是什么意思

意思就是返回这个字符串啊,这个字符串会被解析成实际的内存使用数

mckee1990 发表于 2013-9-5 15:16:40

Hex 发表于 2013-9-5 15:06 static/image/common/back.gif
意思就是返回这个字符串啊,这个字符串会被解析成实际的内存使用数

在哪里去解析的啊

Hex 发表于 2013-9-5 15:19:21

mckee1990 发表于 2013-9-5 15:16 static/image/common/back.gif
在哪里去解析的啊

在 Output.php 里解析的。

看 324 行的 _display 方法。

mckee1990 发表于 2013-9-5 15:23:14

Hex 发表于 2013-9-5 15:19 static/image/common/back.gif
在 Output.php 里解析的。

看 324 行的 _display 方法。

哦看到了 memory_get_usage还没看到那个地方多谢
页: [1]
查看完整版本: CodeIgniter源码阅读(3)Benchmark.php基准测试类