2010-04-08 59 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)它標誌着開始,然後當該方法返回的東西或發送數據到輸出結束基準測試(這是您所看到的控制器執行時間(家庭/索引))