【问题标题】:Web CMS Performance: pages/second (Joomla, Drupal, Plone, WP)Web CMS 性能:页面/秒(Joomla、Drupal、Plone、WP)
【发布时间】:2011-01-08 09:24:27
【问题描述】:

注意:我不喜欢网络编程,所以请原谅我的无知,以防问题是微不足道的。此外,请不要评论这些产品的开箱即用比较“有多大缺陷”。问题不在于他们如何相互竞争,而在于他们所有人都令人难以置信的缓慢背后的原因。

刚刚阅读了benchmark,其中 Joomla、Drupal、Wordpress、Plone3 和 4 已经过测试。令我震惊的是:开箱即用,他们的速度约为 4-14 页/秒。这怎么可能,为什么他们这么慢? CMS 应该只查询数据库并将数据打包成漂亮的模板。数据库很快。模板应该很快(文本替换,没什么大不了的)。我们的机器速度超快,然而,这些高端 CMS 只能产生几页/秒。怎么会?

【问题讨论】:

  • 如果性能很重要,您就为性能而构建。如果特性很重要,你就为特性而构建。大多数 CMS 擅长在功能、性能和新鲜度之间进行折衷,例如通过缓存。 99% 的公共网站从未达到每秒两位数的持续请求率。那些确实投资于更多定制解决方案的公司。

标签: php python content-management-system benchmarking


【解决方案1】:

它们很慢有几个原因:

1 - 它们中的大多数都是非常模块化的,这意味着更多的文件、更多的代码和更多的数据库查询。

2 - 他们在很大程度上(不是 wordpress 这么多)尝试做所有事情,再次为每种可能的情况设计一个系统使其更加复杂和难以调整。

3 - 他们中的大多数(目前)同时支持 PHP4 和 PHP5,这又是额外的工作。

4 - 据称它们是为了让非技术用户可以使用它们而制作的,这意味着它们经常不得不以一种不是最有效的方式做事,即 Drupals CCK / Views 让无法有效编程的人创建数据库表和 SQL 查询,缺陷是这些表/查询在设计上非常通用,与自定义编码工作相比效率相当低。

5 - 他们倾向于使用大量的数据库查询,Drupal 使用 40 左右的非常基本的页面,如果您搜索他们的论坛,您会看到有人声称某些页面进行数百甚至上千个查询的报告。

他们当然提供缓存,Drupal 可以从它的 boost 模块之类的东西中获得相当好的性能,作为 Drupal(和 Joomla)的卖点之一的缺陷是你可以在其中创建一个社区站点、论坛、Digg 之类的站点,所有缓存使用有限的网站...

【讨论】:

    【解决方案2】:

    CMS 可以做更多的事情...

    最后但并非最不重要的一点是不要将桌面软件速度与 Wep 应用程序进行比较。

    差别很大

    【讨论】:

      【解决方案3】:

      CMS 应该只查询数据库并将数据打包到漂亮的模板中。

      没那么多。主要的现代 CMS 系统是极其复杂的野兽。一个典型的页面不仅仅是正文和标题,还有基于类别的动态内容查询,这些查询聚合了许多站点区域的信息;更不用说安全修整和用户特定的内容区域了。例如,加载http://www.volvogroup.com 涉及至少 7 个这样的查询,加上通过站点结构进行递归以生成导航,并连接到外部系统以获取新闻和投资者关系数据。考虑到这一点,需要一个强大的服务器场才能每秒提供数百次点击也就不足为奇了。

      【讨论】:

        【解决方案4】:

        请不要对此感到生气,但先解释您对网络编程的不熟悉,然后批评您认为“简单”操作的性能,这有点短视。

        我鼓励您更多地了解 CMS 解决的常见问题,以及动态网页和 HTTP 工作原理的一般理论和实践。它远非简单的 I/O 操作。

        另外,为了实际使用,我强烈建议任何运行 CMS 的人寻找缓存解决方案。缓存旨在解决网络技术中出现的许多“速度”问题。它应该是任何常见 Web 堆栈的一部分。

        【讨论】:

        • 说得好。 (填写到 15 个字符...)
        • 我的问题并不是要批评 CMS。我问过,因为我想知道那个答案。就是这样。
        • 在文章中,人们倾向于认为 4-20 页/秒的非缓存速度是理所当然的,我还没有看到关于什么需要这么长时间的解释。所以,我想“让我们问问stackoverflow为什么”。这种态度有什么问题?
        • 另外,我广泛使用 Drupal,所以像这样光顾垃圾让我畏缩。让我们看看你做了什么,1. 称呼提问者,2. 光顾 ​​3. 你将如何解决问题。您的所有段落都没有真正说明 CMS 当前表现背后的原因。
        • @noonethere 我认为你对@Bryan M 有点粗鲁。他诚实地回答了你的问题,并没有以傲慢的方式回答。只是我的意见。
        【解决方案5】:

        在我看来:

        因为 CMS 和框架考虑到了您需要的所有东西,所以您可以使用: 喜欢

        • 过滤用户输入
        • 创建 PDF、AJAX 输出模板等等

        这取决于你的需要,你真正需要什么

        我不同意你写的内容

        CMS 应该只查询数据库并将数据打包到漂亮的模板中。

        CMS 可以做更多的事情...

        最后但并非最不重要的是,不要将桌面软件速度与 Wep 应用程序进行比较。

        差别很大

        【讨论】:

          【解决方案6】:

          它们是相对复杂的系统。它们允许很多插件挂钩,因此从请求到响应的工作流程中有很多步骤。

          然而,在现实世界中,缓存(无论是应用程序内缓存还是操作码缓存)对性能的提升是巨大的。

          我不熟悉 Plone,但 PHP CMS 本质上必须通过每个请求加载和解释几乎整个系统。

          【讨论】:

            【解决方案7】:

            因为完成所有这些需要大量处理。它不是“查询、替换、渲染”的问题。所有这些产品都适合广泛的用例并在一定程度上具有可扩展性,因此您所说的这 3 个基本操作实际上被拆分为许多非常多的操作,所有这些操作都需要时间。

            一切都是平等的——系统越灵活,“开箱即用”的速度就越慢。

            【讨论】:

            • 同意。他也没有使用任何缓存运行测试,这在这种情况下是公平的,但在大多数情况下,您会缓存索引页面之类的页面以节省处理时间。带有缓存的 Wordpress 可以非常快,但它本身并不是最快的,因为与其他应用程序一样,它适用于多个应用程序。
            • “您所说的 3 个基本操作被分解成很多很多操作,所有这些操作都消耗时间”:那么它是处理时间(CPU)和 Python 和 PHP 等动态语言的使用吗?
            • 是的。但比使用动态更重要的是他们试图满足的要求以及开发人员为满足这些要求而设计的架构。您可以构建一个处理速度超快的裸露的 cms……但它也不会具备所有这些功能。
            猜你喜欢
            • 2011-06-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-01-14
            • 2011-02-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多