2012-03-15 46 views
1

我有一個symfony 1.4.x應用程序,並希望能夠顯示頁面加載時間。如何獲取symfony頁面加載時間?

在開發環境中,加載時間顯示在調試工具欄中。

如何在app /%APP_NAME%/ templates/layout.php中獲取頁面加載時間?

enter image description here 感謝

回答

1

一般測量PHP執行一次使用這樣的事情:

$start = microtime(true /*get as float*/); 

//some code goes here (i.e. your symfony request dispatching) 

$end = microtime(true); 
echo sprintf("some code executed for %.3f seconds", $end - $start); 

與Symfony框架的訣竅是在好的地方注入你的代碼,我的建議是:

  • 使用過濾器鏈(如果您熟悉此機制)。只是任何其他記錄第一$開始時間戳之前插入您的過濾器,並計算差異在佈局文件
  • 或恕我直言難看,但更爲精準 - 破解的symfony前端控制器記錄調度呼叫之前,你的$開始時間戳
  • 當然

的佈局文件頁面加載時間計算差已經是缺點,因爲它不計算渲染整個頁面的時間,只是爲了一時佈局呈現(其可以接受,因爲渲染布局是l之一ast請求調度任務,但不總是呈現佈局)

要解決這個問題,你可以在請求結束時使用你的過濾器來輸出javascript,它會將頁面加載時間附加到文檔中(幾乎是symfony用它做的是什麼調試工具欄)

+0

我希望能夠調用任何追蹤頁面處理時間的內置symfony函數。 – Patrick 2012-04-23 20:35:31

+0

我不會建議它,因爲Symfony的配置文件相當昂貴,並且在開發環境之外啓用此功能會很困難。 – 2012-04-24 10:04:14