Codeigniter基准测试,这些ms来自何处?

时间:2010-04-08 23:08:15

标签: php codeigniter benchmarking

我正在对我的网站进行基准测试。

class Home extends Controller {

    function Home() 
    {
        parent::Controller();
        $this->benchmark->mark('Constructor_start');

        $this->output->enable_profiler(TRUE);
        $this->load->library ('MasterPage');

        $this->benchmark->mark('Constructor_end');
    }

    function index() 
    {
        $this->benchmark->mark('Index_start');

        $this->masterpage->setMasterPage('master/home');
        $this->masterpage->addContent('home/index', 'page');
        $this->masterpage->show();

        $this->benchmark->mark('Index_end');
    }
}

结果如下:

  

加载时基类:0.0076
  构造函数:0.0007
  指数:0.0440
  控制器执行时间(主页/索引):0.4467
  总执行时间:0.4545`

我理解以下内容:

  • 加载时基类(0.0076)
  • 构造函数(0.0007)
  • 指数(0.0440)

但剩下的时间从哪里来?

3 个答案:

答案 0 :(得分:1)

我没有对CI驱动的网站进行过很多基准测试,但0.4545看起来并不是很快。

在Controller Execution Time(但在您自定义的基准测试之外)下发生的一件事是自动加载config / autoload.php文件中定义的所有内容。如果您在那里加载了大量的库或模型,那么这将会增加您的控制器执行时间,而不会有任何明显的原因。

答案 1 :(得分:0)

我认为索引函数的最后一行应该是

$this->benchmark->mark('Index_end');

这个错字可能导致了有趣的结果。

答案 2 :(得分:0)

Codeigniter自动对从请求到最终输出的总时间进行基准测试发送到浏览器(这是总执行时间)

此外,当它要调用您指定的控制器/方法(通常通过url)时,它标记了该开始,然后当该方法返回某些内容或将数据发送到输出时,它结束该基准测试(这是您正在看到的控制器执行时间(主页/索引)