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 毫秒。
我试过什么?
对于所有适用的 GET 请求,我使用 Cache-Control headers 如下:
Cache-Control: must-revalidate=true
Cache-Control: max-age=180
这没有太大帮助,因为 Ubuntu 服务器计算机(使用 Apache)由于负载和执行时间而自行重启,如果是 POST APIs,我仍然无能为力.
我也曾尝试在 Apache 服务器上启用 OPcache,但不确定是否有帮助,因为我在优化应用程序服务器和服务器配置方面非常天真。
请帮忙。如果需要任何其他详细信息,请在评论中告诉我。
我正在使用 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 毫秒。
我试过什么?
对于所有适用的 GET 请求,我使用 Cache-Control headers 如下:
Cache-Control: must-revalidate=true Cache-Control: max-age=180
这没有太大帮助,因为 Ubuntu 服务器计算机(使用 Apache)由于负载和执行时间而自行重启,如果是 POST APIs,我仍然无能为力.
我也曾尝试在 Apache 服务器上启用 OPcache,但不确定是否有帮助,因为我在优化应用程序服务器和服务器配置方面非常天真。
请帮忙。如果需要任何其他详细信息,请在评论中告诉我。