2010-04-08 80 views
2

我正在对我的网站进行基准测试。Codeigniter基准测试,这些ms来自哪里?

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'

我说不定d以下:

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

但其中的其余时间是从哪里来的?

+0

结果的单位是什么? – MrD 2014-11-08 08:46:16

回答

1

我haven' t做了很多基于CI的网站的基准测试,但0.4545似乎并不快。

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

+0

没有0.4545是不是非常快,这是我在这里结束的主要原因...我会尝试把标记放在我加载的图书馆... – Ropstah 2010-04-09 22:12:56

+0

好抓,似乎是一个插件。谢谢! – Ropstah 2010-04-09 22:18:18

0

我觉得你的指数函数的最后一行应该是

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

这个错字可能造成有趣的妆效。

+0

不,这不是问题。这只是一个错字。感谢您的注意,虽然... – Ropstah 2010-04-08 23:29:10

0

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

此外,当它是关于要调用控制器/方法指定(通常通过URL)它标志着开始,然后当该方法返回的东西或发送数据到输出结束基准测试(这是您所看到的控制器执行时间(家庭/索引))