代码之家  ›  专栏  ›  技术社区  ›  themhz

如果只有一个控制器处理所有请求,那么joomla的性能会受到影响吗?[已关闭]

  •  1
  • themhz  · 技术社区  · 11 年前

    控制器负责对用户操作做出响应。在web应用程序的情况下,用户操作(通常)是页面请求。控制器将确定用户正在做出什么请求,并通过触发模型以适当地操作数据并将模型传递到视图中来适当地响应。

    资料来源: Controller - J1.5:Developing a MVC Component/Introduction

    所以我想知道,在开始破坏应用程序之前,一个控制器可以同时处理多少个http请求(json调用、xmls调用、http调用)?我可以使用多个控制器,但老实说,joomla中的一个控制器可以处理多少请求?或者换句话说,如果有一个控制器处理所有请求,而不是将逻辑分解为多个控制器,那么joomla的性能会受到影响吗?

    3 回复  |  直到 11 年前
        1
  •  1
  •   Community CDub    8 年前

    从Joomla的角度思考,你只会混淆答案,因为你引入了很多额外的因素。对于任何PHP文件,您都可以问同样的问题,如下所示:

    更简单的问题: 我有一个名为 script.php ,有多少HTTP请求可以同时调用此文件。

    答案是: 您的服务器可以支持的数量。制作两个文件( script1.php script2.php )根本不一定能提高性能。不过,它可能会有一些改进,因为调用的php脚本都会加载到内存中,而您的服务器只有这么多内存。

    第二个变量可能是处理能力。因此,控制器处理的工作量越少,每个调用在服务器上的负载就越小。(例如,如果您正在对一组数据进行计算,但需要将其显示在页面上的三个不同位置,则只计算一次,然后将其保存在可用于每次显示的变量中。)

    然而,在所有这些中,您可以处理的请求数量并没有神奇的数字。即使你进行了测试,并告诉我们你的控制器可以处理72个同时连接,这也是一个无用的数字。

    你真正想知道的是:

    因此,实际上应该在服务器上运行的测试是一个控制器和多个控制器之间的区别。这种比较考虑了您运行测试的当前硬件,并帮助您优化代码。

    老实说,在这一点上,我不确定与Joomla合作过很多次会不会有足够的不同。您的代码中可能存在更糟糕的瓶颈,最好将重点放在标准优化实践上: PHP code optimization

    最后一点,我确实认为拥有多个控制器是有价值的,但这更重要,这样我就可以记住不同的功能在哪里,以及它们在固有的速度问题上做了什么。

        2
  •  1
  •   nibra    11 年前

    通常,每个请求都会实例化一次控制器,因此每个控制器实例只处理一个请求。可以同时提供多少请求取决于可用的资源(当然还有每个线程所消耗的资源),并且会因环境而异。

        3
  •  1
  •   Techie    11 年前