我正在对我的网站进行基准测试。
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 :(得分:1)
我没有对CI驱动的网站进行过很多基准测试,但0.4545看起来并不是很快。
在Controller Execution Time(但在您自定义的基准测试之外)下发生的一件事是自动加载config / autoload.php文件中定义的所有内容。如果您在那里加载了大量的库或模型,那么这将会增加您的控制器执行时间,而不会有任何明显的原因。
答案 1 :(得分:0)
我认为索引函数的最后一行应该是
$this->benchmark->mark('Index_end');
这个错字可能导致了有趣的结果。
答案 2 :(得分:0)
Codeigniter自动对从请求到最终输出的总时间进行基准测试发送到浏览器(这是总执行时间)
此外,当它要调用您指定的控制器/方法(通常通过url)时,它标记了该开始,然后当该方法返回某些内容或将数据发送到输出时,它结束该基准测试(这是您正在看到的控制器执行时间(主页/索引)