|
本帖最后由 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}';
}
}
复制代码
|
|