3 第二次到第一个字节

3 second time to first byte

我一直在维护一个 PHP/SQL 电子商务应用程序,客户打电话说他们的 ttfb 一直跳了将近 3 秒。

我尝试过的:

  1. 创建一个 test.php 页面来回显一些文本会产生 30 毫秒的 ttfb。
  2. 回溯提交历史并检查是否有任何最近的更改可能是罪魁祸首。

测试页面加载速度很快让我相信它是某种查询或逻辑,在网站上的每个其他页面上运行(auth?),但是 none 自跳入以来的最近提交ttfb 有任何影响。这怎么会随机发生?

这其实是一个性能优化问题,可以通过profiling来解决。

您可以使用 xdebug 或其他可用的工具进行分析,但是我个人在遇到类似情况时没有找到有用的解决方案,所以我只是做了适用于应用程序的简单分析模块。

你想要做的是尝试在本地或临时服务器上模仿生产、服务器设置、数据库条目等中的确切设置。然后只测量从 [=22 中的第一行开始的执行时间=],到应用程序的关键部分,例如db read/write class,http request class。然后将数据写入某个数据库,以便生成分析报告。

因此,对于每个路由 and/or 操作,您需要查看发出了多少次数据库请求,它们执行了多长时间,发出了多少次 API 调用(如果这个是这样)等等。最后的目标是很好地了解执行流程的哪一部分花费了多长时间。