CodeIgniter 核心代码阅读-监控文件Benchmark.php
2013-05-30 15:16
531 查看
Benchmark.php----基准测试类
标记一个开始点
标记一个结束点
运行elapsed_time函数显示结果
下面是一个代码示例:
注意:单词“code_start”和“code_end”是任意的,他们是简单的单词用来做为两个标记。你可以使用你想用的任意单词,并且你可以设置多个标记,参考下面的这些代码:
如果你想你的基准数据对评测有效,你的标记点必须设置成对,并且每个标记点必须用_start 和_end结束.每一对标记点的前部必须相同.例如:
在CodeIgniter.php中的标记点:
控制器执行耗费的时间:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 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}'; } }测试基准类可以在 控制器, 视图,或者 模型.中使用,用法如下:
标记一个开始点
标记一个结束点
运行elapsed_time函数显示结果
下面是一个代码示例:
$this->benchmark->mark('code_start'); // Some code happens here $this->benchmark->mark('code_end'); echo $this->benchmark->elapsed_time('code_start', 'code_end');
注意:单词“code_start”和“code_end”是任意的,他们是简单的单词用来做为两个标记。你可以使用你想用的任意单词,并且你可以设置多个标记,参考下面的这些代码:
$this->benchmark->mark('dog'); // Some code happens here $this->benchmark->mark('cat'); // More code happens here $this->benchmark->mark('bird'); echo $this->benchmark->elapsed_time('dog', 'cat'); echo $this->benchmark->elapsed_time('cat', 'bird'); echo $this->benchmark->elapsed_time('dog', 'bird');
如果你想你的基准数据对评测有效,你的标记点必须设置成对,并且每个标记点必须用_start 和_end结束.每一对标记点的前部必须相同.例如:
$this->benchmark->mark('my_mark_start'); // Some code happens here... $this->benchmark->mark('my_mark_end'); $this->benchmark->mark('another_mark_start'); // Some more code happens here... $this->benchmark->mark('another_mark_end');
在CodeIgniter.php中的标记点:
$BM =& load_class('Benchmark', 'core'); $BM->mark('total_execution_time_start'); $BM->mark('loading_time:_base_classes_start'); $BM->mark('loading_time:_base_classes_end'); $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start'); $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end');
控制器执行耗费的时间:
echo $BM->elapsed_time('total_execution_time_start', 'controller_execution_time_( '.$class.' / '.$method.' )_end');
相关文章推荐
- CodeIgniter 核心代码阅读-配置文件Config.php
- CodeIgniter 核心代码阅读-公用函数文件Common.php
- CodeIgniter 核心代码阅读-Utf8转码文件Utf8.php
- CodeIgniter 核心代码阅读-输入数据处理文件Input.php
- CodeIgniter 核心代码阅读-钩子文件Hooks.php
- CodeIgniter 核心代码阅读-入口文件index.php
- CodeIgniter 核心代码阅读-URI解析文件URI.php
- CodeIgniter 核心代码阅读-安全文件Security.php
- CodeIgniter 核心代码阅读-程序启动文件CodeIgniter.php
- CodeIgniter 核心代码阅读-输出文件Output.php
- CodeIgniter 核心代码阅读-加载类Loader.php
- CodeIgniter 核心代码阅读-加载语言包Lang.php
- CodeIgniter 核心代码阅读-控制器超级类Controller.php
- CodeIgniter源码阅读笔记(4)——性能测试Benchmark.php
- CodeIgniter 核心代码阅读-路由文件Router.php
- codeigniter源码分析-核心文件CodeIgniter.php
- CI框架 -- 核心文件 之 Benchmark.php
- 服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)
- CI框架源码完全分析之核心文件Codeigniter.php
- CI框架源码阅读笔记4 引导文件CodeIgniter.php