首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Symfony优化控制器执行时间线

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

Stack Overflow用户
提问于 2017-03-10 17:32:18
回答 1查看 2.6K关注 0票数 1

对于与MySQL数据库通信的REST,我使用Symfony版本3.1.9。

大多数POST API (Controller函数)的平均时间是3-4秒!是的~3-4秒:(

对于其中一个API,下面是Symfony Profiler的详细信息

API性能指标的第一次执行

总执行时间13307毫秒 485 ms Symfony初始化 34.25MB峰值内存使用量

API性能指标的第二次后续执行

4862毫秒总执行时间 266 ms Symfony初始化 34.00MB峰值内存使用量

这里是第二个执行时间的屏幕截图,似乎控制器在一些繁重的处理过程中非常繁忙,但我在控制器功能中所做的所有工作都是从MySQl数据库访问信息,并且我已经确认通过Doctrine进行的MySql查询占用的时间不超过1ms。

我试过什么?

  • 在适用的情况下,如果出现所有GET请求,我将使用缓存控制头,如下所示: 缓存-控制:必须-重新验证=真正的缓存-控制:max-age=180-这对Ubuntu服务器机器(使用Apache)由于加载和执行时间而重新启动没有多大帮助,对于POST API,我仍然无能为力。
  • 我也尝试过在Apache服务器上启用OPcache,但不确定这是否有帮助,因为我在优化应用程序服务器和服务器配置方面非常幼稚。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 17:57:37

您可以使用秒表组件来获得控制器内部所需时间的更准确的时间。然而,试图精确分析运行在“dev”环境中的Symfony应用程序是不值得的--因此,生产中使用的许多潜在的速度提升都被删除了,而像分析器这样的开发工具需要花费大量的时间来生产--以及构建整个容器。

您可以将分析器阈值降低到0,并查看正在记录的所有内部事件,然后开始使用像黑火这样的工具来优化慢速调用和数据库查询。

此外,查看分析器中的Doctrine选项卡将显示什么,以及正在进行多少查询。这也可以快速显示问题可能出现的地方--主要是因为打的电话比你最初想象的要多得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42724411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档