【问题标题】:What can delay "Time to First byte" by almost 2s?什么可以将“第一个字节的时间”延迟近 2 秒?
【发布时间】:2016-09-22 14:49:59
【问题描述】:

我启用了一个 PHP 分析器,以及 magento,但它仍然是一个分析器。 这是标准的 magento 编译器,它记录所有处理,包括从接收请求到创建页面的所有 db 查询。

我正在使用本地托管的 php 内置服务器进行测试。

结果显示服务器响应时间相当不错,但在 chrome 开发工具上,第一个字节的时间要长得多。这是为什么呢?

注意...下面的时间截图来自相同的请求...很明显

分析器(www.mysite.com/index.php):

开发者工具(www.mysite.com/index.php):

【问题讨论】:

  • 这是任何人的猜测,为什么一个比另一个高。没有真正的信息可以冒险猜测,因为我们不知道他们在测量什么。
  • 设身处地为他人着想,试图回答你的问题。想象一下,我问你“为什么我到我家的时间比我邻居家的时间长?”我给你的唯一信息是我花了 30 分钟到我家,20 分钟去我邻居家。你是怎么开始用这么少的信息回答这个问题的?当然,您只能做出疯狂的猜测。
  • 我的疯狂猜测是 magento 和 Chrome DevTools 的测量结果不同。据我了解 Chrome DevTools,它们测量从开始(可能是 DNS 查找)到完成(加载所有资源并呈现页面时)的时间。 Magento 可能只分析某些 PHP 脚本/模块/任何东西的执行
  • @surfer190 我想你完全没有理解我的意思,但是好吧......这里是完全任意的疯狂猜测工作,只是为了在没有足够信息的情况下进行完全任意的疯狂猜测工作。您的开发人员工具响应时间测量包括网络延迟等内容。因此,即使您的 PHP 只需要 589 毫秒来完成它的工作,并且该响应的第一个字节需要剩余的 1,701 毫秒才能到达您的浏览器,那么这就是所有网络延迟。让我们看看我们可以通过疯狂的猜测将这个线程保持多久,好吗?
  • 嗯,太好了。您刚刚意识到可能 10 亿条信息中有 1 条丢失了。我希望您现在可以看到我的回复中使用的修辞,并认识到这个问题过于宽泛而无法准确回答,因为没有足够的信息来对您获得数字的原因做出任何有根据的猜测拿到。请记住,我们看不到您的代码。我们对您的系统设置一无所知。我们不知道您的分析器在做什么。我们不知道您可能无意中犯了哪些错误。 我们真的一无所知。所以不要指望这里有答案。

标签: php magento server-response


【解决方案1】:

编辑

我已经写了一个更大的答案,但后来我意识到你正在使用内置的 PHP 服务器。老实说,您应该试一试真正的网络服务器。您可能正在寻找一个不存在的问题(尽管有人可能会争辩说发生了一些事情,因为这不是正常情况 - 您可能遇到了 PHP 错误);)

【讨论】:

  • 嗯,请提供您更大的答案。也许router.php 正在减慢速度。
  • 它与Apache有关,因此不适用。您可以在修订页面 (stackoverflow.com/posts/39814076/revisions) 中阅读它。是的,您还应该对router.php 进行基准测试。如果您也可以将其发布在您的问题中,那也会很有帮助。
【解决方案2】:

发现问题。

分析器未记录包含的库。在magento/lib 文件夹中,即使您明确将其设置为配置文件,也不会记录任何内容。

看来我们需要用一个包罗万象的php profiler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多