如果只有一个控制器处理所有请求,会影响joomla性能吗?

时间:2013-09-02 15:36:15

标签: joomla joomla2.5 joomla1.5

  

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

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

通过考虑Joomla,你只会混淆答案很多,因为你引入了很多额外的因素。您可以询问有关任何PHP文件的相同问题,例如:

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

答案:您的服务器有多少可以支持。制作两个文件(script1.phpscript2.php)并不一定能提高性能。它可能会有一些改进,因为被调用的php脚本被加载到内存中,而你的服务器只有很多内存。

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

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

您真正想知道的事情:

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

老实说,就这一点而言,我不确定与Joomla合作的事情会有多大差异。您的代码中可能存在更严重的瓶颈,并且最好将重点放在标准优化实践上:PHP code optimization

作为最后一点,我确实认为拥有多个控制器是有价值的,但更重要的是我能记住不同功能的位置以及它们对固有速度问题所做的工作。

答案 2 :(得分:1)

这取决于您拥有的服务器。阅读以下文章

HTTP Server Performance Tuning

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html