控制器负责响应用户操作。对于 Web 应用程序,用户操作(通常)是页面请求。控制器将确定用户正在发出什么请求,并通过触发模型适当地操作数据并将模型传递到视图中来适当地响应。
所以我想知道,在一个控制器开始搞砸应用程序之前,它可以同时处理多少个 http 请求(json 调用、xmls 调用、http 调用)?我可以使用多个控制器,但老实说,joomla 中的单个控制器可以处理多少个请求?或者换句话说,如果有一个控制器处理所有请求而不是将逻辑分解为多个控制器,joomla 性能会受到影响吗?
控制器负责响应用户操作。对于 Web 应用程序,用户操作(通常)是页面请求。控制器将确定用户正在发出什么请求,并通过触发模型适当地操作数据并将模型传递到视图中来适当地响应。
所以我想知道,在一个控制器开始搞砸应用程序之前,它可以同时处理多少个 http 请求(json 调用、xmls 调用、http 调用)?我可以使用多个控制器,但老实说,joomla 中的单个控制器可以处理多少个请求?或者换句话说,如果有一个控制器处理所有请求而不是将逻辑分解为多个控制器,joomla 性能会受到影响吗?
通常,控制器为每个请求实例化一次,因此每个控制器实例只处理一个请求。可以同时处理多少个请求,取决于可用资源(当然还有每个线程消耗的资源),并且会因环境而异。
从 Joomla 的角度思考,你只会混淆答案,因为你引入了很多额外的因素。您可以对任何 PHP 文件提出相同的问题,如下所示:
更简单的问题:
我有一个名为 的文件script.php
,有多少个 HTTP 请求可以同时调用这个文件。
答案:你的服务器可以支持多少。制作两个文件 (script1.php
和script2.php
) 不一定会提高性能。不过它可能会有一些改进,因为任何被调用的 php 脚本都会加载到内存中,而您的服务器只有这么多内存。
第二个变量可能是处理能力。因此,控制器必须处理的越少,每次调用对服务器施加的负载就越少。(例如,如果您正在对一组数据执行计算,但需要在页面上的三个不同位置显示它,则只需计算一次,然后将其保存在可用于每次显示的变量中。)
然而,在所有这一切中,您可以处理的请求数量并没有神奇的数字。即使您运行测试并告诉我们您的控制器可以同时处理 72 个连接,这也是一个无用的数字。
你真正想知道的:
因此,您实际上应该在服务器上运行的测试是一个控制器和多个控制器之间的区别。这种比较考虑了您运行测试的当前硬件,并帮助您优化代码。
老实说,在这点上,我不确定与 Joomla 一起工作是否会有足够的差异。您的代码中可能存在更严重的瓶颈,最好关注标准优化实践:PHP 代码优化
最后一点,我确实认为拥有多个控制器很有价值,但这更重要的是我可以记住不同的功能在哪里以及它们在固有的速度问题上做了什么。