2011-03-05 29 views
0

由于我所有的请求都是通过一个索引脚本进行的,因此我试图计算所有请求的响应时间。PHP执行时间:决定执行速度时要考虑的因素

它只是开始时间(脚本开始)和结束时间(脚本结束)之间的差异。

当我在memcached上缓存我的数据并且用户都使用memcached进行服务。

我通常得到的回应时间不到一秒钟,但有时会出现超过一秒的奇怪秒杀。最糟糕的情况可能会高达200多秒。

我想知道,如果移动用户有一个缓慢的连接,这是否反映了我的回应时间?

我服务的主要移动用户。

谢谢!

回答

0

如果您使用PHP测量(它听起来像是你),那就是在服务器端生成页面所需的时间,而不是下载所需的时间。

在整个页面中放置定时器,并尝试将其分解为导致200多秒的巨大延迟的部分。

你甚至可以添加一个小脚本,它会通过电子邮件发送每个部分加载时间的详细信息,如果它经常不足以自己查看。

+0

感谢您的回答。我猜测可能是EC2碰巧选择了特定的php执行,并决定偏向它。由于约90%以上的请求不到一秒钟。我会继续监测情况。 :) 谢谢! – lxcid 2011-03-06 18:44:43

1

不,这是您的脚本的运行时。它不会计算用户的延迟,这是底层Web服务器担心的问题。脚本中的某些内容需要很长时间。我建议你分析你的脚本来找到它是什么。 Xdebug是一个很好的方法。

+0

谢谢!对于快速回答家伙。 :)我希望我能投票给你们。 – lxcid 2011-03-06 18:45:09

+0

@lxcid其实,你*可以*。你也应该接受一个答案。 – deceze 2011-03-06 22:56:59

0

可能是因为客户端非常缓慢地下载结果,脚本无法完成。如果您不使用像nginx这样的前端服务器,首先要做的就是尝试一下。

+1

不正确。在收到请求之前,脚本不会启动,并且无论客户端下载多长时间,脚本都会完全生成。 尽管Nginx对缓存有所帮助,但OP仍然需要弄清楚问题的根源。 我接受这个解释的唯一方法是如果用户正在上传文件,然后nginx甚至不会帮助。 – 2011-03-05 23:43:36

0

有人已经提到xdebug,但通常你不想在生产中运行xdebug。我建议使用xhprof来分析开发/分期/制作页面。您可以有条件地打开xhprof,这使得运行生产变得非常简单。