我有一个使用 Laravel 5.2 编写的大型应用程序。该应用程序似乎在“一两天”内运行良好,然后开始减慢“每个请求表超过 15 秒”。
我试图找出可能导致速度下降的原因。首先,我列出了我应该按顺序查看的“以下”前 4 个类别。
- SQL Server 问题。锁,长时间运行的查询。
- PHP 问题可能导致额外/不需要的工作,如长时间运行的循环
- Web 服务器问题,如内存泄漏或响应时间慢。
- 网络问题。
对于第一类“即 SQL 问题”,我评估了所有查询,一切似乎都很轻巧且相当快。没有长时间运行的查询,也没有发现 SQL 锁。虽然我没有将其排除为可能的问题,但现在看其他地方是公平的。需要注意的一点是,该应用程序正在生成大量查询,这表明我可能遇到了 N+1 的情况。
虽然第 3 类和第 4 类很重要,但我喜欢将一些时间集中在我需要帮助的第二类“即代码问题”上。如果存在代码问题,我需要能够弄清楚一些事情来帮助我做出有根据的判断。这是我想知道/开始记录的几件事。
- 每个类需要多长时间才能执行,看看是否需要更长的时间来运行。
- 从每个类生成的所有查询的数量/列表,我可以在其中识别 N+1 案例的来源。
我在 Google Chrome 中使用 Clockwork 扩展程序,它帮助我记录日志。但是,我无法在课堂级别分解结果,这将使我对正在发生的事情有深刻的了解。
如何收集上面列出的 2 个项目?是否可以连接到 Clockwork 并将该信息作为过滤器添加到其中我只是在 Google 扩展中看到所有这些信息的地方?