【问题标题】:PHP execution time: Factor to consider in determining the speed to executionPHP 执行时间:确定执行速度时要考虑的因素
【发布时间】:2011-03-05 06:39:29
【问题描述】:

由于我的所有请求都通过一个索引脚本,我尝试计算所有请求的响应时间。

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

当我在 memcached 上缓存我的数据时,所有用户都使用 memcached 提供服务。

我的响应时间通常不到一秒,但有时会有超过一秒的奇怪峰值。最坏的情况可能会长达 200 多秒。

我想知道移动用户的连接速度是否很慢,这是否反映了我的响应时间?

我正在为主要的移动用户提供服务。

谢谢!

【问题讨论】:

    标签: php memcached profile execution


    【解决方案1】:

    不,这是脚本的运行时。它不计算对用户的延迟,这是底层 Web 服务器所担心的。您脚本中的某些内容只需要很长时间。我建议您分析您的脚本以查找它是什么。 Xdebug 是这样做的好方法。

    【讨论】:

    • 谢谢!为了快速回答伙计们。 :) 我希望我能给你们投票。
    • @lxcid 事实上,你可以。你也应该接受答案。
    【解决方案2】:

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

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

    您甚至可以添加一个小脚本,该脚本会通过电子邮件向您发送详细信息,说明每个部分的加载时间(如果加载频率不高,您自己也无法查看)。

    【讨论】:

    • 感谢您的回答。我猜这可能是 EC2 碰巧选择了那个特定的 php 执行并决定对它有偏见。因为大约 90+% 的请求不到一秒。我会继续关注情况。 :) 谢谢!
    【解决方案3】:

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

    【讨论】:

    • 不正确。脚本在收到请求之前不会启动,无论客户端下载多长时间,它都会完全生成。虽然 Nginx 在一定程度上有助于缓存,但是 OP 仍然需要弄清楚问题的根源是什么。我接受这种解释的唯一方法是,如果用户正在上传文件,那么 nginx 甚至都无济于事。
    【解决方案4】:

    有人已经提到过 xdebug,但通常你不想在生产环境中运行 xdebug。我建议使用xhprof 来分析关于开发/登台/生产的页面。您可以有条件地打开 xhprof,这使得在生产环境中运行非常容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 2020-05-25
      相关资源
      最近更新 更多