PHP Symfony 优化控制器执行时间线

PHP Symfony Optimise Controller Execution Time Line

我正在使用 Symfony 版本 3.1.9 用于与 MySQL 数据库通信的 REST APIs。

大部分 POST API 秒(控制器功能)的平均时间约为 3-4 秒!是的,大约 3-4 秒 :(

对于 API 之一,这里是 Symfony Profiler 的详细信息:

第一次执行 API 性能指标

13307 ms Total execution time
485 ms Symfony initialization
34.25 MB Peak memory usage

第 2 次后续执行 API 性能指标

4862 ms Total execution time
266 ms Symfony initialization
34.00 MB Peak memory usage

Here 是第二次执行时间的屏幕截图,看起来控制器在一些繁重的处理中非常忙,但我在控制器功能中试图做的就是从 MySQl 数据库,我已经确认 MySql 通过 Doctrine 进行的查询不会超过 1 毫秒。

我试过什么?

请帮忙。如果需要任何其他详细信息,请在评论中告诉我。

您可以使用 stopwatch 组件来更准确地了解控制器内的运行时间。尝试在 'dev' 环境中准确分析 运行 的 Symfony 应用程序是不值得的 - 生产中使用的许多潜在加速被删除,并且开发工具如分析器需要大量时间来生产 - 以及构建整个容器。

您可以将探查器阈值降低到 0 并查看正在记录的所有内部事件,然后从那里开始使用 Blackfire 等工具来优化慢速调用和数据库查询。

同时查看探查器中的 Doctrine 选项卡将显示正在进行的查询以及查询的数量。这也可以快速显示可能出现问题的位置 - 主要是由于拨打的电话比您最初想象的要多。