代码之家  ›  专栏  ›  技术社区  ›  Lukas Oppermann

使用Smarty+缓存提高性能?

  •  2
  • Lukas Oppermann  · 技术社区  · 16 年前

    我打算开始使用CodeIgniter,但是因为它只提供缓存所有东西或什么都不缓存(这不起作用,因为我有登录名,以及其他无法缓存的区域),所以我想知道使用Smarty是否是个好主意。

    在这个问题上,我唯一关心的是速度。(不,是/否,聪明的一般问题。)

    我的问题: 带一些数据库查询(博客、从数据库加载页面数据等)的CodeIgniter

    VS

    codeigner+相同的db+smarty+部分缓存(当然,如果smarty->被缓存(.tpl),不要执行任何db请求)

    什么是快,我应该用什么。有没有我没看到的聪明基准?从多少db请求开始,您会说,smarty提高了性能显著考虑到您还必须加载smarty库?

    事先谢谢。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Elzo Valugi    16 年前

    Smarty或任何模板系统都是另一层复杂性。它带有过载,而不是性能提高,即使在缓存时也是如此。它的优点是其他的,比如容易发展。

        2
  •  3
  •   Gordon Haim Evgi    16 年前

    过早的优化是万恶之源。 .我建议在应用程序完成之前不要担心缓存。然后通过分析它的 xdebug 或 Zend_Debugger 做一些负载测试 ab . 如果可以,请使用操作码缓存。

    如果你认为这个应用程序太慢,那么考虑页面/部分缓存。您不希望缓存是为了缓存,而是为了找到并消除瓶颈。如果你对smarty感到满意,并且想把它用作模板引擎,那么就使用它。如果不需要模板引擎,也可以使用 Zend_Cache 具有 APC 或 memcached 用于缓存。

        3
  •  0
  •   Boldewyn    16 年前

    为什么不实现自己的缓存方法呢?没那么难。

    我在不同的项目中同时使用了Smarty和CodeIgniter。它们都是很好的图书馆,但我从未觉得有必要将它们结合起来。

    缓存方法可以使用CI的挂钩: pre_system 若要查看是否缓存了整个页面,请发布控制器以截获对视图的调用,然后…只是扫描CI用户指南。有一个 hook 'cache_override' . 我想你也可以用这个。

    推荐文章