2013-02-15 53 views
2

我啓用了基於Codeigniter的應用程序分析,並且我得到了一些令人驚訝的結果。Codeigniter自動加載每個Http請求中的庫/助手

在進一步的調試,我意識到,下面的值非常高,即使是靜態頁面,如公司簡介等,這沒有DB交互或PHP處理 裝載時間:基類 執行時間控制器 總執行時間

我試着玩配置文件,並意識到如果我刪除了幾個模型和庫的自動加載,上述3個變量的值顯着下降

我假設一旦它仍然在內存中自動加載。這是正確的嗎 ?

同樣看着結果,如果我有一個需要的模型70%的時間在代碼中,我仍然不會自動加載它,只有在需要提高性能時才加載。

是否有其他替代

回答

2

自動加載它是不是運行一次,並存儲在內存中的所有請求。每次發出請求時,root中的index.php都會啓動,並且每次都必須從頭開始加載所有內容。自動加載的好處是,你不必費心每次打電話時都要自己加載,因爲Codeigniter已經爲你做好了。它使編碼更容易。每當用戶做出任何請求或使某些功能成爲全局功能時,無論何時使用模塊,都應該自動加載。例如,我在所有視圖中使用了url_helper,所以我只是自動加載它,所以我不必手動加載它自己。

自動加載模型不會提高性能。

要手動加載東西請參閱http://ellislab.com/codeigniter/user-guide/libraries/loader.html

+0

同意!!但是,假設只有60-70%的觀點需要url_helper,我是否應該自動加載以確保其餘30-40%的觀看錶現?有沒有最佳做法/推薦標準 – 2013-02-15 14:44:35

+0

加載'url_helper'的性能如此之小,對我來說無關緊要。包括它可以幫助我避免在忘記加載它時出現的錯誤。從技術上講,如果我沒有加載它,這將是服務器需要做的一件事。我想這是一個風格/意見問題,如果你應該使用手動加載或自動加載,但我認爲大多數人只是說autoload它。 – Murtnowski 2013-02-15 14:47:12