【问题标题】:How can I reduce the waiting (ttfb) time如何减少等待(ttfb)时间
【发布时间】:2015-04-19 06:58:37
【问题描述】:

我有一个查询,该查询涉及根据创建时间按排序顺序从表中获取用户列表。我从 chrome 开发者工具中得到了如下时序图。

您可以看到 TTFB(到第一个字节的时间)太高了。
我不确定是否是因为 SQL 排序。如果这是原因,那么我该如何减少这个时间?
还是因为TTFB。我看到博客说 TTFB 应该更少(1 秒。是因为我的查询还是其他原因?
我不确定如何减少这个时间。
我正在使用角度。我应该使用角度来对表进行排序而不是 SQL 排序吗? (很多帖子说这不应该是问题)
我想知道的是如何减少 TTFB。伙计们!我实际上对此很陌生。这是我的团队成员交给我的任务。我不确定如何减少 TTFB 时间。我看了很多帖子,但无法正确理解。什么是TTFB。是服务器占用的时间吗?

【问题讨论】:

  • 您的问题表明对这里发生的情况缺乏了解。这是等待服务器的时间,因此无论您使用 AngularJS 还是其他框架都无关紧要。如果你想改进服务器端代码,你实际上必须向我们展示代码。
  • @govindpatel,如果我下面的回答对您有所帮助或您认为它回答了问题,请将其标记为正确答案;)
  • 对于简单的表格排序(假设表格数据已经被获取,并且您只是通过不同的属性来处理数据),在客户端执行它比发送另一个要快得多请求排序数据。

标签: developer-tools timing-diagram


【解决方案1】:

TTFB 不是响应正文的第一个字节的时间(即有用的数据,例如:json、xml 等),而是从服务器接收到的响应的第一个字节的时间.这个字节是响应头的开始。

例如,如果服务器在执行繁重的工作(如繁重的 SQL)之前发送标头,您将获得非常低的 TTFB,但它不是“真实的”。

在您的情况下,TTFB 代表您在服务器上处理数据所花费的时间。

要降低 TTFB,您需要更快地完成服务器端工作。

【讨论】:

  • 为了进一步诊断 TTFB 期间发生的计时,您可以使用服务器端计时方法(例如设置计时器或调试日志)来调试每个逻辑所花费的时间。
  • 看看这篇文章,它详细解释了问题并提供了可能的解决方案的建议:websiteoptimization.com/speed/tweak/time-to-first-byte
  • 谨防将TTFB视为最重要的一点:blog.cloudflare.com/…
  • 如果此答案对您有帮助@govindpatel,请将其标记为正确的答案;)
【解决方案2】:

我遇到了同样的问题。我的项目在本地服务器上运行。我检查了我的 php 代码。

$db = mysqli_connect('localhost', 'root', 'root', 'smart');

我使用localhost 连接到我的本地数据库。这可能是您描述的问题的原因。您可以修改您的HOSTS 文件。添加行

127.0.0.1 localhost.

【讨论】:

  • 谢谢。我将 localhost (TTFB: 1s) 更改为 127.0.0.1 (TTFB: 12ms)
  • 在我的情况下,这个答案也有帮助:TTFB 2,39 s -> TTFB 110 ms。为什么有人反对它?
  • 我认为这也为我的 Spring-Boot 应用程序修复了它,我在 Docker-Container 中使用 Postgres 数据库,TTFB 长达 10 秒,现在只有大约 40 毫秒 :)
  • 为什么“localhost”需要这么长时间?
【解决方案3】:

TTFB 是在幕后发生的事情。您的浏览器对幕后发生的事情一无所知。

您需要查看正在运行的查询以及网站如何连接到服务器。

This 文章可能有助于理解 TTFB,但否则您需要更深入地研究您的应用程序。

【讨论】:

    【解决方案4】:

    如果您使用的是 PHP,请尝试在 </head> 之后和 </body> 之前使用 <?php flush(); ?> 或您想要快速输出的任何部分(如标题或内容)。它将输出实际代码而无需等待 php 结束。不要一直使用这个功能,否则速度提升不会很明显。

    More info

    【讨论】:

      【解决方案5】:

      我建议您阅读此article,并更多地关注如何优化对用户请求的整体响应(页面、搜索结果等)

      一个很好的论据是他们给出的关于使用 gzip 压缩页面的例子。即使不压缩时 ttfb 速度更快,但用户的整体体验最差,因为下载未压缩的内容需要更长的时间。

      【讨论】:

      • 请务必查看该文章的 cmets 部分。许多人给出了关注 TTFB 的令人信服的理由。
      猜你喜欢
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多