2009-12-17 55 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'。我想你也可以使用它。