欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CodeIgniter类库之Benchmarking Class 博客分类: PHP  

程序员文章站 2024-03-19 23:58:04
...

CodeIgniter中有个Benchmarking类库,它是被系统自动被加载的,不需要手工加载。Benchmarking类库能够计算出任意两个被标记点之间的代码执行时间。通过这个数值,可以评估程序员编写的程序的效率。

另外,当CodeIgniter框架被调用时,系统会调用Benchmark类库中的方法,以计算出Output类库将所有内容正确的发送至浏览器所执行的时间。

可以在我们自己编写的模型(Model)、视图(View)和控件器(Controller)中通过以下三步使用Benchmark:

  1. 标记起始点
  2. 标记结束点
  3. 调用elapsed_time方法显示结果

下面就是使用示例

CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  $this->benchmark->mark('code_start');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
//Somecodehappenshere
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
$this->benchmark->mark('code_end');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
echo$this->benchmark->elapsed_time('code_start','code_end');

我们可以任意代码行做标记,并通过elapsed_time方法计算任两个标记点之间的代码执行时间。

CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  $this->benchmark->mark('dog');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
//Somecodehappenshere
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
$this->benchmark->mark('cat');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
//Morecodehappenshere
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
$this->benchmark->mark('bird');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
echo$this->benchmark->elapsed_time('dog','cat');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
echo$this->benchmark->elapsed_time('cat','bird');
CodeIgniter类库之Benchmarking Class
            
    
    博客分类: PHP  
echo$this->benchmark->elapsed_time('dog','bird');

若希望显示从框架被加载到所有内容被正确发送至浏览器中所消耗的时间,可以在你的视图文件(View)中加入如下语句,这个语句只能在视图文件(View)中使用。

<?phpecho$this->benchmark->elapsed_time();?>

这句代码和我们在之前的示例中使用的是同一个方法,只不过是没有参数。如果你的视图是使用HTML和PHP混合编写的,你还可以通过使用模板标记来显示结果

{elapsed_time}

我们还可以在自己编写的视图中使用另一个模板标记来显示内存的使用信息

{memory_usage}

PS:上面提到的{elapsed_time}和{memroy_usage}标记只能在视图文件(View)中使用。

版权声明:本文为博主原创文章,未经博主允许不得转载。