2009-12-17 66 views
2

我要開始使用笨,但因爲它只提供緩存什麼都不要(這是行不通的,因爲我已經登錄,並且不能被緩存等地區)我不知道它是否是用一個好主意Smarty的。使用Smarty +緩存提高性能?

我在這個問題中唯一關心的是速度。 (否是/否Smarty的一般性問題。)

我的問題: 笨一些的數據庫查詢(博客,從數據庫頁面加載數據等)

笨+相同的DB +智者+部分緩存(如果smarty-當然> is_cached(.tpl)不做任何數據庫請求)

什麼是快,我應該怎麼用。有沒有我沒有看到的聰明基準?從多少分貝請求開始,你會說,smarty可以提高性能,注意到你還必須加載smarty庫嗎?

在此先感謝。

回答

1

Smarty或任何模板系統是另一層複雜性。它帶有過載而不是性能增加,即使在緩存時也是如此。它的優點是其他的優點,比如易於開發。

+3

對不起,我真的不贊同你這個。 Smarty實際上將smarty模板編譯爲原始PHP代碼,所以第一次運行模板時,模板將被解析並保存爲PHP。在這裏看到聰明的性能測試。哪個show smarty是該死的快。 http://umumble.com/blogs/php/249/ CI模板系統不壞,但你不會得到編譯超級快速模板smarty了。 – 2012-03-20 22:57:24

3

過早的優化是一切罪惡的根源。除非你的應用程序完成,否則我建議不要擔心緩存。然後通過分析xdebugZend_Debugger來查看它的性能,並使用ab進行一些負載測試。如果可以,請使用操作碼緩存。

如果你覺得應用程序太慢的話,考慮頁/分音緩存。你不想緩存的緩存,但找到並消除瓶頸。如果你對Smarty感到滿意,並希望將其用作模板引擎,那麼就使用它。如果您不需要模板引擎,則還可以使用Zend_CacheAPCmemcached進行緩存。

0

爲什麼不實施自己的緩存方法?這並不難。

我在不同項目中同時使用Smarty的和笨。他們都是非常好的圖書館,但我從來沒有覺得有必要將它們結合起來。

緩存方法可以使用CI的掛鉤:pre_system查看是否存在整個頁面緩存,post_controller攔截對視圖的調用以及...僅掃描CI用戶指南。有一個hook 'cache_override'。我想你也可以使用它。