我这里的get.php是生成json数据用的,供ajax调用若同时有1万个请求,
方案一:这1万个请求都同时访问一个get.php的文件;get.php里面的架构大概是这样的
if (id==1) {
 情况一;
}
else if (id==2) {
 情况二;
}
...如此类推
else if (id==20) {
情况二十;
}
方案二,将get.php拆分成根据不同的情况细节为get1php, get2.php... get19.php, get20.php,使1万个请求分散。1)请问这两种方案,速度上有什么差异?2)有什么好的方法可以提高请求的速度?
我知道有一种方法是,把get.php文件分布到不同的服务器上,这样子可以分散开不同服务器的读取,读取速度也会加快。

解决方案 »

  1.   

    多台服务器布置负载均衡肯定可以分担压力的,但是同时代码也可以做优化的,你用地if else if格式,倒不如用switch(){case: ;break;}语句...全凭LZ判断
      

  2.   

    我做的话会单独请求一个文件,但不会在这个文件内直接计算(写个接口类或者会)
    要么分支include不同文件,要么include一个类
      

  3.   

    楼主真巧,我也在想这个问题.以下想法是我在未做过任何测试前的想法.
    在同一个文件中做条件判断的话,则1w次请求就需要1w次if-else的判断.
    而且这个文件中一共有1w个分支,1w个不同的请求平均每次要进行5k次else if判断才能到达需要的代码段
    也就是说1w次请求,总共要进行5kw次else if判断才能找到到达需要代码段.
    如果分成1w个文件来独立处理不同请求,则可避免这5kw个else if运算所造成的资源消耗.
    当然把1w个文件做成一个文件也有他的好处,那就是方便程序猿维护那些相同部分的代码.另外一个问题是,同时对一个文件进行1w次读取操作和对1w个不同的文件同时进行读取的速度应该是一样的.
    因为请求的php不会被lock,所以不会出现堵塞的情况.至于怎么架构才便于程序员维护以及让服务器运行更快,这个就留给lz自己想了~