我一直在维护一个 PHP/SQL 电子商务应用程序,客户打电话说他们的 ttfb 一直跳到近 3 秒。
我试过的:
- 创建一个 test.php 页面来回显一些文本会产生一个 30 毫秒的 ttfb。
- 回到提交历史并检查是否有任何最近的更改可能是罪魁祸首。
测试页面加载很快让我相信它是某种查询或逻辑,在站点上的每个其他页面上运行(auth?),但自从 ttfb 跳转以来最近的提交都没有任何效果。这怎么会随机发生?
我一直在维护一个 PHP/SQL 电子商务应用程序,客户打电话说他们的 ttfb 一直跳到近 3 秒。
我试过的:
测试页面加载很快让我相信它是某种查询或逻辑,在站点上的每个其他页面上运行(auth?),但自从 ttfb 跳转以来最近的提交都没有任何效果。这怎么会随机发生?
这实际上是一个性能优化问题,可以通过 profiling 来解决。
对于分析,您可以使用xdebug或其他可用的工具,但是我个人在遇到类似情况时没有找到有用的解决方案,所以我只是制作了一个适用于应用程序的简单分析模块。
您想要做的是尝试在本地或临时服务器上模仿生产中的确切设置、服务器设置、数据库条目等。然后只需测量从 index.php 中的第一行开始到关键部分的执行时间应用程序,例如 db 读/写类、http 请求类。然后将数据写入某个数据库,以便生成分析报告。
因此,对于每个路由和/或操作,您会想查看已经发出了多少个数据库请求,以及它们执行了多长时间,已经进行了多少 API 调用(如果是这样的话)等等。最后,目标是很好地了解执行流程的哪一部分需要多长时间。