【问题标题】:Waiting times for php pagephp页面的等待时间
【发布时间】:2017-06-21 13:48:23
【问题描述】:

我正在调试我的 ajax 应用程序的性能问题。

Firefox 开发者工具显示大约 3 秒作为等待时间。

如果我尝试通过 getrusage() 'ru_utime.tv_sec' 和 'ru_utime.tv_usec' 测量 php 脚本,我会在脚本开始时随机获得 0.2 到 9 秒,脚本开始和结束之间的差异约为 0.07 秒。

那么我该如何解释这些结果呢? 这是否意味着 php 代码本身运行 0.07 秒,剩余时间用于 sql 查询等? (我的脚本中有很多复杂的查询)

或者这是否意味着apache或php解释器在执行实际的php代码之前做了一些事情?

或者可能不是服务器故障,而是 ajax 一个 jquery?

debian。 php 版本为 5.4,apache - 2.2,jquery 1.11。

更新: 抱歉,我忘了提及重要信息 - 我从页面运行多个 ajax 请求。如果我单独运行一个请求,等待时间为 0.6 秒。

【问题讨论】:

  • TTFB 时间是否一致?
  • 是的,我认为 TTFB 是一致的。每个请求的“+2.24 请求开始时间”。

标签: php mysql apache


【解决方案1】:

您使用的是本地主机吗?如果是这样,它可能会更慢。如果可以的话,升级到 PHP 7,它会大大提高速度。 Apache,如果您想要更好的性能,请切换到 nginx。 Apache 就像 4 x 4,包含您需要的一切,而 nginx 更像是一辆法拉利,虽然不多,但它可以满足您的需求。

虽然没关系,jQuery 现在是版本 3,但你运行的是旧版本。

【讨论】:

  • Debian 发行版和我管理服务器的同事有点保守。我怀疑我会很快获得最新的 php(或 mysql 5.6.3+,这将大大提高我的查询性能):(
  • php 5.4 是一个潜在的安全风险,它的生命周期已经结束并且已经超过一年了。如果他比较保守的话,可以一起收集一份文件,就继续使用 PHP 5.4 的风险和升级的好处提供建议,iirc 7 使用的资源也比 5.x 少。
【解决方案2】:

因此,getrusage() 仅测量 PHP 代码执行本身的时间。 如果我想测量查询流等,我需要实时测量。

$GLOBALS["mymicrotime"] = microtime(true);
//code here
print_r(microtime(true) - $GLOBALS["mymicrotime"]);

由于 Interbase/Firebird 查询中的某种锁定,并行脚本运行 3 秒而不是 0.6 秒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多